Interpreting ASP.NET 5 & MVC6 Series (17): Other new features in MVC

Interpreting ASP.NET 5 & MVC6 Series (17): Other new features in MVC

(GlobalImport global import function)

In the default newly created MVC program, a new _GlobalImport.cshtml file and a _ViewStart.cshtml file are added to the Views directory. The function of this file is similar to the web.config file in the Views directory. Previously, we often set the global import namespace in this file to avoid repeating the @using xx.xx statement in each view file.

The default example is as follows:

  1. @using BookStore
  2. @using Microsoft.Framework.OptionsModel
  3. @addTagHelper   "*, Microsoft.AspNet.Mvc.TagHelpers"  

The above code indicates that the BookStore and Microsoft.Framework.OptionsModel namespaces, as well as all namespaces under the Microsoft.AspNet.Mvc.TagHelpers assembly are referenced.

We have already explained the addTagHelper function in TagHelper. Note that in this example, we only referenced the BookStore namespace and did not reference the BookStore.Controllers namespace, so we cannot access the HomeController class in any view (nor can we access it as Controllers.HomeController). I hope Microsoft can improve this in the future.

Get IP related information

To obtain the IP address information of the user visitor, you can use dependency injection to obtain an instance of IHttpConnectionFeature, from which you can obtain the relevant information of the IP address. The example is as follows:

var connection1 = Request.HttpContext.GetFeature (); var connection2 = Context.GetFeature (); var isLocal = connection1.IsLocal; //Is it a local IP? var localIpAddress = connection1.LocalIpAddress; //Local IP address var localPort = connection1.LocalPort; //Local IP port var remoteIpAddress = connection1.RemoteIpAddress; //Remote IP address var remotePort = connection1.RemotePort; //Local IP port

Similarly, you can also obtain related instances through interfaces such as IHttpRequestFeature, IHttpResponseFeature, IHttpClientCertificateFeature, and IWebSocketAcceptContext, and use the features on the instance. The above interfaces are all under the namespace Microsoft.AspNet.HttpFeature.

File upload

MVC6 provides new improvements in file upload, as shown below:

  1. < form   method = "post"   enctype = "multipart/form-data" >  
  2. < input   type = "file"   name = "files"   id = "files" multiple />  
  3. < input   type = "submit"   value = "submit"   />  
  4. </ form >  

We define the above upload form on the front-end page, and can use the new file type IFormFile in MVC6 when receiving it. The example is as follows:

[HttpPost]
public async Task Index(IList files) { foreach (var file in files) { var fileName = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim('"');// Beta3 version bug, the string returned by FileName contains double quotes, such as "fileName.ext" if (fileName.EndsWith(".txt"))// Only save txt files { var filePath = _hostingEnvironment.ApplicationBasePath + "\\wwwroot\\"+ fileName; await file.SaveAsAsync(filePath); } } return RedirectToAction("Index");// PRG

<<:  Interpreting ASP.NET 5 & MVC6 Series (16): Customizing View View File Search Logic

>>:  What "truths" can your brothers and sisters learn from the IT tycoons' choices of majors in the college entrance examination?

Recommend

New product online event planning and promotion!

When it comes to online event planning, the most ...

Paid gameplay for acquiring new customers

Acquiring new customers is an eternal mission for...

Enable HSTS to force the browser to redirect to HTTPS access

After the entire website is HTTPS, if the user ma...

Xiaomi's car-making partner confirmed? SAIC-GM-Wuling officially confirms

It is reported that the official account of SAIC ...

This Chinese Valentine's Day, I am only impressed by these 7 marketing plans!

First of all, I have a bad news to tell you. Yes,...

Teach you step by step how to quickly analyze keyword reports?

In daily life, bidders are often jokingly called ...

How to accept the hurt emotions of children? "Useless" love is more powerful

As children grow up, they will always encounter v...