天天看點

解讀ASP.NET 5 & MVC6系列(17):MVC中的其他新特性(GlobalImport全局導入功能)擷取IP相關資訊檔案上傳同步與推薦

預設建立立的MVC程式中,在Views目錄下,新增加了一個<code>_GlobalImport.cshtml</code>檔案和<code>_ViewStart.cshtml</code>平級,該檔案的功能類似于之前Views目錄下的web.config檔案,之前我們在該檔案中經常設定全局導入的命名空間,以避免在每個view檔案中重複使用<code>@using xx.xx</code>語句。

預設的示例如下:

上述代碼表示,引用<code>BookStore</code>和<code>Microsoft.Framework.OptionsModel</code>命名空間,以及<code>Microsoft.AspNet.Mvc.TagHelpers</code>程式集下的所有命名空間。

關于addTagHelper功能,我們已經在TagHelper中講解過了

注意,在本例中,我們隻引用了<code>BookStore</code>命名空間,并沒有引用<code>BookStore.Controllers</code>命名空間,是以我們在任何視圖中,都無法通路<code>HomeController</code>類(也不能以<code>Controllers.HomeController</code>的形式進行通路),希望微軟以後能加以改進。

要擷取使用者通路者的IP位址相關資訊,可以利用依賴注入,擷取<code>IHttpConnectionFeature</code>的執行個體,從該執行個體上可以擷取IP位址的相關資訊,執行個體如下:

類似地,你也可以通過<code>IHttpRequestFeature</code>、<code>IHttpResponseFeature</code>、<code>IHttpClientCertificateFeature</code>、 <code>IWebSocketAcceptContext</code>等接口,擷取相關的執行個體,進而使用該執行個體上的特性,上述接口都在命名空間<code>Microsoft.AspNet.HttpFeature</code>的下面。

MVC6在檔案上傳方面,給了新的改進處理,舉例如下:

我們在前端頁面定義上述上傳表單,在接收可以使用MVC6中的新檔案類型<code>IFormFile</code>,執行個體如下:

繼續閱讀