(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"
|
上述代码表示,引用BookStore
和Microsoft.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端口
|
类似地,你也可以通过IHttpRequestFeature
、IHttpResponseFeature
、IHttpClientCertificateFeature
、 IWebSocketAcceptContext
等接口,获取相关的实例,从而使用该实例上的特性,上述接口都在命名空间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
}
|
相关文章
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
如何在PrestaShop 1.7中查看PHP设置和升级模块
2025-05-25 63 -
2025-05-24 45
-
2025-05-26 85
-
2025-06-04 80
-
2025-06-04 16