有人可以向我介绍asp.net路由语法吗?
我在Web窗体方案中处理此代码:
public static void RegisterRoutes(RouteCollection routes) { Route r = new Route("{*url}",new MyRouteHandler()); routes.Add(r); routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("{resource}.gif/{*pathInfo}"); } 首先,任何人都可以告诉我{* pathInfo}的定义在哪里? routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 比赛 /c/xyz.axd and /b/c/xyz.axd and /a/b/c/xyz.axd 而 routes.IgnoreRoute("{resource}.axd"); 只有比赛 /xyz.axd 其次,在: {*url} 这是什么意思?而整个表达是什么意思呢?有没有明确的解释? 第三,是否有特定的顺序需要添加这些表达式来正确忽略路由?我知道{* url}是某种可能的,如果IgnoreRoutes来到它之前或之后,例如 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("{resource}.gif/{*pathInfo}"); Route r = new Route("{*url}",new MyRouteHandler()); routes.Add(r); 解决方法
我的2美分:
路由不是正则表达式。它只是组成路由的变量和静态组件,由段(由斜杠标识)分隔。有一个特殊符号,最后一个变量中的星号,这意味着从这里,忽略段分隔符 – 斜杠。所以, {*url} 是最简单的路由,因为它意味着取整个URL,将其放入变量“url”,并将其传递到与该路由相关联的页面。 {controller}/{action}/{id} 将所有内容都放在第一个分段(第一个斜杠)到变量“controller”中,将第一个和第二个之间的所有内容放在变量“action”中,第二个和第三个斜杠(或结束)之间的所有内容,进入变量’id’。然后将这些变量传递到关联页面。 {resource}.axd/{*pathInfo} 这里把信息放在.axd /(它不能有任何斜线!)到’资源’,并把所有的第一个/进入’pathInfo’。由于这通常是一个ignoreRoute,所以不是将其传递给关联的页面,而是由Stop??Handler处理,这意味着路由将不会处理它,而是由非路由HttpHandler处理。 如bleevo所说,路由被执行,以便它们被添加到集合中。所以在处理通用路由之前必须添加IgnoreRoute。 这是马的嘴:http://msdn.microsoft.com/en-us/library/cc668201.aspx 具体到你的例子,我会把IgnoreRoute行放在你的路线之上,因为你的路由实际上是一个全部的。另外,请记住.gif忽略只有在gif位于根目录下才能被保证。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 超时在ASP.Net MVC FormsAuthentication中
- asp.net-mvc – Razor如何创建一个CheckBox并使其为READONL
- asp.net – ResolveUrl / Url.Content在Classic Asp中等效
- iis-7 – 使用asp.net在开发机器上创建无cookie应用程序
- asp.net – TZOFFSETFROM和TZOFFSETTO是什么意思
- asp.net – 如何从下拉列表中选择“其他”选项时验证所需的
- asp.net-mvc-3 – 在mvc 3中上传成功的图像,但编辑图像时会
- asp.net-mvc – 如何将查询字符串映射到MVC中的操作方法参数
- asp.net-web-api – 尝试从asp.net web api自主主机中获取用
- asp.net-mvc – 如何在多个Asp.net MVC应用程序中使用通用布
- asp.net-mvc – ASP.NET MVC内联Razor变量
- asp.net-mvc – Href和Url.Content有什么区别?
- 在asp.net c中添加Master页面后,MySql主机出错
- asp.net – Stripe Webhook事件续订订阅
- 记Asp.Net Core Swagger 使用 并带域接口处理
- asp.net-mvc – 仅为未经过身份验证的用户缓存内
- asp.net-mvc-2 – 什么时候使用View()与Redirect
- Cannot access a disposed object in ASP.NET Co
- [你必须知道的.NET] 第六回:深入浅出关键字---b
- asp.net-mvc-3 – 在ASP.NET之外使用Razor