HTML5技术

【ASP.NET MVC 牛刀小试】 ASP.NET MVC 路由 - Alan_beijing

字号+ 作者:H5之家 来源:H5之家 2017-06-29 11:01 我要评论( )

例子引入 先看看如下例子,你能完全明白吗? 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.Web.Routing; MVCDemo 9 { RouteConfig 11 { RegisterRoutes(RouteCol

例子引入

 先看看如下例子,你能完全明白吗?

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.Web.Routing; MVCDemo 9 { RouteConfig 11 { RegisterRoutes(RouteCollection routes) 13 { routes.IgnoreRoute(); routes.MapRoute( ,url: ,defaults: , action = , id = UrlParameter.Optional },namespaces: },constraints: } ); 26 } 27 } 28 }

注:该例子没有加入区域

1 URI、URL与URN

 1.1 URI、URL和URN定义 

     URI(Uniform Resource Identifier)代表统一资源标识符,标识资源的字符串;

     URL (Uniform Resource Locator)代表统一资源定位符,互联网上标准资源的地址;

     URN(Uniform Resources Name)代表统一资源名称,互联网上资源的名称;

 1.2 URI、URL和URN三者之间的关系图

1.3 对URI、URL和URN三者之间解析

      本解析基于1.2 URI、URL和URN三者之间的关系图。

      (1)从命名角度,URI标识资源且唯一,URL标识资源地址 ,URN标识资源名称;

      (2)从数学关系:URI=URL+URN+URL∩URN;很容易看出,URL一定是URI,但URI不一定是URL,同理,URN一定是URI,但URI不一定是URN;

1.4 URL应具有特点

     (1)  域名便于记忆和拼写;

     (2)  简短;

     (3)  便于输入;

     (4)  可以反映出站点结构;

     (5)  应该是“可破解的”,用户可以通过移除URL的末尾,进而到达更高层次的信息体系结构;

     (6)  持久、不能改变

1.5  小结

       通常情况下,URI代表同意资源标识符(Uniform Resource Identifier)。URI是标识了一个资源的字符串。从技术角度看,所有URL都是URI。W3C认为“URL是一个非正式的概念,但它非常有用:URL是URI的一种类型,它通过表示自身的主要访问机制来标识资源”,换句话说,URI是某种资源的标识符,而URL则为获取该资源提供了具体的信息。

       注释:资源是一个抽象概念,既可以指一个文件,也可以指方法调用的结果或服务器上的一些其他内容。

2 路由概述(传统路由)

2.1  WebForm URL与Route URL

     (1)WebForm中,对URL的传入请求通常映射到磁盘上的物理文件,如.aspx文件。例如对?id=4的请求映射到名为Products.aspx文件,该文件包含代码和标记用于呈现对浏览器的响应,一般请求示过程抽象如下:

     

     (2)ASP.NET MVC中,通常地,URL映射并非映射到具体磁盘上的物理文件,这是基于ASP.NET路由特性,主要有两个过程,即URL映射和URL生成(接下来讲解)。在ASP.NET路由中,您可以定义URL模式,该模式包含在处理URL请求时使用的值的占位符。在运行时,运用程序名称后面的URL部分根据您所定义的URL模式分析为离散值。例如,在请求时,路由分析器可以将值Products、show和beverages传递给请求的处理程序。相反,在一个不由URL路由管理的请求中,/Products/show/beverages片段将被解释为运用程序中的一个文件的路径。   

2.2  ASP.NET 路由与 URL 重写

        ASP.NET 路由不同于其他 URL 重写方案。URL 重写通过在将请求发送到网页之前实际更改 URL 来处理传入请求。例如,一个使用 URL 重写的应用程序可能会将 URL 从 /Products/Widgets/ 更改为 /Products.aspx?id=4。此外,URL 重写通常没有相应的 API 来创建基于模式的 URL。在 URL 重写中,如果更改了 URL 模式,则必须手动更新包含原始 URL 的所有超链接。由于 ASP.NET 路由可以从 URL 提取值,所以处理传入请求时不更改 URL。如果必须创建一个 URL,则将参数值传递到为您生成 URL 的方法中。若要更改 URL 模式,请在某位置更改该模式,您在应用程序中创建的基于该模式的所有链接将自动使用新模式。

2.3  路由定义

        A route is a URL pattern that is mapped to a handler. The handler can be a physical file, such as an .aspx file in a Web Forms application. A handler can also be a class that processes the request, such as a controller in an MVC application. To define a route, you create an instance of the Route class by specifying the URL pattern, the handler, and optionally a name for the route.

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Asp.Net WebForm生命周期的详解 - 天使不哭

    Asp.Net WebForm生命周期的详解 - 天使不哭

    2017-06-15 09:00

  • 关于ASP.NET WebForm与ASP.NET MVC的比较 - 天使不哭

    关于ASP.NET WebForm与ASP.NET MVC的比较 - 天使不哭

    2017-06-09 09:02

  • [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗? - Emrys5

    [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗? - Emr

    2017-06-02 13:00

  • Amazing ASP.NET Core 2.0 - Savorboard

    Amazing ASP.NET Core 2.0 - Savorboard

    2017-05-25 14:00

网友点评
-