Routing在MVC上的应用t.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Routing在MVC上的应用t

Routing简介 ASP.NET Routing可以使您访问一个URL,而该URL不必映射到网站中特定文件。由于 URL 不必映射到文件,所以可以在 Web 应用程序中使用一些描述性的用户操作URL,因此更易于被用户理解。 在一个不使用路由的 ASP.NET 应用程序中,对 URL 的传入请求通常映射到磁盘上的物理文件,如 .aspx 文件。例如,对 http://localhost/Order/OrderItem.aspx?orderId=101 的请求映射到名为 OrderItem.aspx 的文件,该文件包含代码和标记用于呈现对浏览器的响应。网页使用 orderId=101 的查询字符串值来决定显示的内容类型,但是该值对用户可能意义不大。 ? Ps: ASP.Net Routing是一个独立的控件,和MVC本身没有任何关系,只是MVC用Routing来实现对URL的解析和导向。 ? MVC 上应用 Routing ? 1. 简单的路由规则 定义的 URL 模式称作“Routing”。在Routing中,您可以指定占位符,用于从 URL 请求中分析值,然后作具体的映射,还可以指定匹配 URL 请求的常量值。 Routing中,我们可以通过用大括号( { 和 })括住占位符来定义占位符(又称为“URL 参数”)。分析 URL 时将 /? 和 . 字符解释为分隔符。将Routing定义中不是分隔符和不在大括号中的值视为一个常量值。将从两个分隔符之间提取的值分配给占位符。 您可以在分隔符之间定义多个占位符,但必须用一个常量值分隔开。例如,{language}-{country}/{action} 是有效的路由模式。而{language}{country}/{action} 则不是一个有效的模式,因为它的占位符之间没有常量或分隔符,因此,路由无法确定在哪里将 language 占位符的值与 country 占位符的值分隔开。 下表演示有效的路由模式和一些与模式匹配的 URL 请求的示例。 路由定义 匹配 URL 示例 {controller}/{action}/{id} /Products/Id/1002 {table}/Details.aspx /Products/Details.aspx blog/{action}/{entry} /blog/article/123 {reporttype}/{year}/{month}/{day} /sales/2008/1/5 {locale}/{action} /zh-cn/show {language}-{country}/{action} /zh-cn/show ? Code: public static void RegisterRoutes(RouteCollection routes) { ??? routes.Add(new Route ??? ( ??????? Category/{action}/{categoryName} ??????? , new CategoryRouteHandler() ??? )); } ? ? 2. 参数的默认值 我们可以设置一个对参数解析的默认值,用作参数在匹配不到时的默认值。 Code: public static void RegisterRoutes(RouteCollection routes) { ??? routes.IgnoreRoute({resource}.axd/{*pathInfo}); ??? routes.MapRoute( ??????? Default, ??????? {controller}/{action}/{id},? ??????? new { controller = Home, action = Index, Id = 0 }? ??? ); } ? 当URL Routing处理URL Request的时候,上面route定义产生的结果如下表所示:? URL Parameter values /Category controller = Category action = “Index” Id = “0” /Category/Product controller = Category action = Product Id = “0” /Category/Product/10a controller = Category action = Index Id = “10a” 3. 不确定个数参数的处理 有时候你需要处理一个URL包含的参数是不确定的URL请求。在你定义route的时候,

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档