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

2025-05-29 0 52

(GlobalImport全局导入功能)

默认新建立的MVC程序中,在Views目录下,新增加了一个_GlobalImport.cshtml文件和_ViewStart.cshtml平级,该文件的功能类似于之前Views目录下的web.config文件,之前我们在该文件中经常设置全局导入的命名空间,以避免在每个view文件中重复使用@using xx.xx语句。
默认的示例如下:

?

1

2

3
@using BookStore

@using Microsoft.Framework.OptionsModel

@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"

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

关于addTagHelper功能,我们已经在TagHelper中讲解过了

注意,在本例中,我们只引用了BookStore命名空间,并没有引用BookStore.Controllers命名空间,所以我们在任何视图中,都无法访问HomeController类(也不能以Controllers.HomeController的形式进行访问),希望微软以后能加以改进。

获取IP相关信息

要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取IHttpConnectionFeature的实例,从该实例上可以获取IP地址的相关信息,实例如下:

?

1

2

3

4

5

6

7

8
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; //远程IP地址

var remotePort = connection1.RemotePort; //本地IP端口

类似地,你也可以通过IHttpRequestFeatureIHttpResponseFeatureIHttpClientCertificateFeatureIWebSocketAcceptContext等接口,获取相关的实例,从而使用该实例上的特性,上述接口都在命名空间Microsoft.AspNet.HttpFeature的下面。

文件上传

MVC6在文件上传方面,给了新的改进处理,举例如下:

?

1

2

3

4
<form method="post" enctype="multipart/form-data">

<input type="file" name="files" id="files" multiple />

<input type="submit" value="submit" />

</form>

我们在前端页面定义上述上传表单,在接收可以使用MVC6中的新文件类型IFormFile,实例如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
[HttpPost]

public async Task<IActionResult> Index(IList<IFormFile> files)

{

foreach (var file in files)

{

var fileName = ContentDispositionHeaderValue

.Parse(file.ContentDisposition)

.FileName

.Trim('"');// beta3版本的bug,FileName返回的字符串包含双引号,如"fileName.ext"

if (fileName.EndsWith(".txt"))// 只保存txt文件

{

var filePath = _hostingEnvironment.ApplicationBasePath + "\\\\wwwroot\\\\"+ fileName;

await file.SaveAsAsync(filePath);

}

}

return RedirectToAction("Index");// PRG

}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 解读ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性 https://www.kuaiidc.com/100187.html

相关文章

发表评论
暂无评论