亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解讀ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性

 更新時(shí)間:2016年06月24日 15:22:46   作者:湯姆大叔  
這篇文章主要介紹了ASP.NET 5中全局導(dǎo)入、獲取IP相關(guān)信息、文件上傳等其他新特性,需要的朋友可以參考下

(GlobalImport全局導(dǎo)入功能)

默認(rèn)新建立的MVC程序中,在Views目錄下,新增加了一個(gè)_GlobalImport.cshtml文件和_ViewStart.cshtml平級(jí),該文件的功能類似于之前Views目錄下的web.config文件,之前我們?cè)谠撐募薪?jīng)常設(shè)置全局導(dǎo)入的命名空間,以避免在每個(gè)view文件中重復(fù)使用@using xx.xx語(yǔ)句。
默認(rèn)的示例如下:

@using BookStore
@using Microsoft.Framework.OptionsModel
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"

上述代碼表示,引用BookStoreMicrosoft.Framework.OptionsModel命名空間,以及Microsoft.AspNet.Mvc.TagHelpers程序集下的所有命名空間。

關(guān)于addTagHelper功能,我們已經(jīng)在TagHelper中講解過(guò)了

注意,在本例中,我們只引用了BookStore命名空間,并沒(méi)有引用BookStore.Controllers命名空間,所以我們?cè)谌魏我晥D中,都無(wú)法訪問(wèn)HomeController類(也不能以Controllers.HomeController的形式進(jìn)行訪問(wèn)),希望微軟以后能加以改進(jìn)。

獲取IP相關(guān)信息

要獲取用戶訪問(wèn)者的IP地址相關(guān)信息,可以利用依賴注入,獲取IHttpConnectionFeature的實(shí)例,從該實(shí)例上可以獲取IP地址的相關(guān)信息,實(shí)例如下:

var connection1 = Request.HttpContext.GetFeature<IHttpConnectionFeature>();
var connection2 = Context.GetFeature<IHttpConnectionFeature>();

var isLocal = connection1.IsLocal;         //是否本地IP 
var localIpAddress = connection1.LocalIpAddress;  //本地IP地址
var localPort = connection1.LocalPort;       //本地IP端口
var remoteIpAddress = connection1.RemoteIpAddress; //遠(yuǎn)程IP地址
var remotePort = connection1.RemotePort;      //本地IP端口

類似地,你也可以通過(guò)IHttpRequestFeatureIHttpResponseFeature、IHttpClientCertificateFeatureIWebSocketAcceptContext等接口,獲取相關(guān)的實(shí)例,從而使用該實(shí)例上的特性,上述接口都在命名空間Microsoft.AspNet.HttpFeature的下面。

文件上傳

MVC6在文件上傳方面,給了新的改進(jìn)處理,舉例如下:

<form method="post" enctype="multipart/form-data">
  <input type="file" name="files" id="files" multiple />
<input type="submit" value="submit" />
</form>

我們?cè)谇岸隧?yè)面定義上述上傳表單,在接收可以使用MVC6中的新文件類型IFormFile,實(shí)例如下:

[HttpPost]
public async Task<IActionResult> Index(IList<IFormFile> files)
{
  foreach (var file in files)
  {
    var fileName = ContentDispositionHeaderValue
      .Parse(file.ContentDisposition)
      .FileName
      .Trim('"');// beta3版本的bug,F(xiàn)ileName返回的字符串包含雙引號(hào),如"fileName.ext"
    if (fileName.EndsWith(".txt"))// 只保存txt文件
    {
      var filePath = _hostingEnvironment.ApplicationBasePath + "\\wwwroot\\"+ fileName;
      await file.SaveAsAsync(filePath);
    }
  }
  return RedirectToAction("Index");// PRG
}

相關(guān)文章

最新評(píng)論