天天看点

解读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>,实例如下:

继续阅读