解读ASP.NET 5 & MVC6系列教程(17):MVC中的其他新特性
2016-06-24 00:00
751 查看
(GlobalImport全局导入功能)
默认新建立的MVC程序中,在Views目录下,新增加了一个
默认的示例如下:
上述代码表示,引用
关于addTagHelper功能,我们已经在TagHelper中讲解过了
注意,在本例中,我们只引用了
获取IP相关信息
要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取
类似地,你也可以通过
文件上传
MVC6在文件上传方面,给了新的改进处理,举例如下:
我们在前端页面定义上述上传表单,在接收可以使用MVC6中的新文件类型
解读ASP.NET 5 & MVC6系列教程(8):Session与Caching
解读ASP.NET 5 & MVC6系列教程(9):日志框架
解读ASP.NET 5 & MVC6系列教程(10):Controller与Action
解读ASP.NET 5 & MVC6系列教程(11):Routing路由
解读ASP.NET 5 & MVC6系列教程(12):基于Lamda表达式的强类型Routing实现
解读ASP.NET 5 & MVC6系列教程(13):TagHelper
解读ASP.NET 5 & MVC6系列教程(14):View Component
解读ASP.NET 5 & MVC6系列教程(15):MvcOptions配置
解读ASP.NET 5 & MVC6系列教程(16):自定义View视图文件查找逻辑
默认新建立的MVC程序中,在Views目录下,新增加了一个
_GlobalImport.cshtml文件和
_ViewStart.cshtml平级,该文件的功能类似于之前Views目录下的web.config文件,之前我们在该文件中经常设置全局导入的命名空间,以避免在每个view文件中重复使用
@using xx.xx语句。
默认的示例如下:
@using BookStore @using Microsoft.Framework.OptionsModel @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
上述代码表示,引用
BookStore和
Microsoft.Framework.OptionsModel命名空间,以及
Microsoft.AspNet.Mvc.TagHelpers程序集下的所有命名空间。
关于addTagHelper功能,我们已经在TagHelper中讲解过了
注意,在本例中,我们只引用了
BookStore命名空间,并没有引用
BookStore.Controllers命名空间,所以我们在任何视图中,都无法访问
HomeController类(也不能以
Controllers.HomeController的形式进行访问),希望微软以后能加以改进。
获取IP相关信息
要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取
IHttpConnectionFeature的实例,从该实例上可以获取IP地址的相关信息,实例如下:
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端口
类似地,你也可以通过
IHttpRequestFeature、
IHttpResponseFeature、
IHttpClientCertificateFeature、
IWebSocketAcceptContext等接口,获取相关的实例,从而使用该实例上的特性,上述接口都在命名空间
Microsoft.AspNet.HttpFeature的下面。
文件上传
MVC6在文件上传方面,给了新的改进处理,举例如下:
<form method="post" enctype="multipart/form-data"> <input type="file" name="files" id="files" multiple /> <input type="submit" value="submit" /> </form>
我们在前端页面定义上述上传表单,在接收可以使用MVC6中的新文件类型
IFormFile,实例如下:
[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 }
您可能感兴趣的文章:
解读ASP.NET 5 & MVC6系列教程(7):依赖注入解读ASP.NET 5 & MVC6系列教程(8):Session与Caching
解读ASP.NET 5 & MVC6系列教程(9):日志框架
解读ASP.NET 5 & MVC6系列教程(10):Controller与Action
解读ASP.NET 5 & MVC6系列教程(11):Routing路由
解读ASP.NET 5 & MVC6系列教程(12):基于Lamda表达式的强类型Routing实现
解读ASP.NET 5 & MVC6系列教程(13):TagHelper
解读ASP.NET 5 & MVC6系列教程(14):View Component
解读ASP.NET 5 & MVC6系列教程(15):MvcOptions配置
解读ASP.NET 5 & MVC6系列教程(16):自定义View视图文件查找逻辑
相关文章推荐
- OpenERP v6.1新特性解读 (一)整体易用性、界面、移动性
- OpenERP v6.1新特性解读 (三) 技术
- C#6.0中10大新特性的应用和总结
- Mac中体验ASP.NET 5 beta2的K gen代码生成
- 解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介
- 即将发布的jQuery 3 有哪些新特性
- JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
- Vue.js 2.5新特性介绍(推荐)
- VS2015中C#版本6.0的新特性 你需要知道
- SQL Server2012在开发中的一些新特性
- 探讨:JavaScript ECAMScript5 新特性之get/set访问器
- 解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置
- PHP6 中可能会出现的新特性预览
- ThinkPHP3.1新特性之命名范围的使用
- 浅谈php7的重大新特性
- PHP5.3新特性小结
- 解读ASP.NET 5 & MVC6系列教程(2):初识项目
- 与技术谈一场永不分手的恋爱 推荐
- 3分钟看完MongoDB3.6新特性 推荐