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

The best development environment and efficient API building method

These days, just about every developer is familia...

The whole process of liver injury

Loading long image... Source: CCTV News...

Android phones collect and transmit large amounts of data, study shows

[[428880]] Researchers from Trinity College Dubli...

The most-liked answer on Zhihu: How are marketers made?

Today I saw some people who can analyze the suppl...

How to do online promotion?

As the Internet age has developed to this day, th...

How to obtain seed users during the cold start period?

In the initial stage of cold start, how do we ide...

Today's headlines traffic diversion skills and advantages

A bird of prey, eating large chunks of meat. I ha...

To B operation methodology!

In the past year, To B has been very popular, and...

Analysis of 3 high-conversion information flow advertising cases

Today I bring you several excellent information f...