MVC 路由问题,怎么才能指定某个URL用某个路由?

不懂必须要问 2014-01-07 09:22:26
Url.Action("A", "B", new { C="Lastday",D=20120301,E=10 })%>
如果顺路由顺序不变,则生成的是/Lastday/20120301/10.html。但是换了位置后,就生成参数式了,不懂自动匹配路由生成URL了。

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Type",
url: "{C}/{D}/{E}.html",
defaults: new { controller = "A", action = "B", C= @"[a-zA-Z0-9_]+", D= @"\d{8}", E= @"\d +" }
);

routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "A", action = "A" }
);
}
...全文
753 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
不懂必须要问 2014-01-11
  • 打赏
  • 举报
回复
如果第一个才匹配的话,我只能写一个这样的规则。URL就会按第一个规则生成URL?
不懂必须要问 2014-01-08
  • 打赏
  • 举报
回复
引用 6 楼 caozhy 的回复:
当然和顺序有关了,因为路由按照顺序匹配,写在上面的匹配上,就不匹配下面的了。 非要颠倒顺序,你得先用IgnoreRoute让前面的匹配失败,再匹配后面的。
那么我有多个的话只能匹配一个?能不能那个匹配就生成那种URL?
方寸三千 2014-01-08
  • 打赏
  • 举报
回复
是按顺序匹配的 比如第一个路由匹配成功了 底下都不会执行
threenewbee 2014-01-07
  • 打赏
  • 举报
回复
当然和顺序有关了,因为路由按照顺序匹配,写在上面的匹配上,就不匹配下面的了。 非要颠倒顺序,你得先用IgnoreRoute让前面的匹配失败,再匹配后面的。
不懂必须要问 2014-01-07
  • 打赏
  • 举报
回复
引用 2 楼 u013136740 的回复:
routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带有参数的 URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
这个没啥用,默认的。就是要匹配我定的先再匹配默认的无所谓。
不懂必须要问 2014-01-07
  • 打赏
  • 举报
回复
引用 1 楼 yisuowushinian 的回复:
页面加载的时候首先匹配的是你的Controller方法,然后在相应的controller里面寻找对应的Action方法的,你的路由配置错了
错是没错的。可以正常生成URL,并且正确。位置换了后不不正确了。生成的是?x=xxx&y=yyyy,而不是这种/Lastday/20120301/10.html。 routes.MapRoute( name: "Type", url: "{C}/{D}/{E}.html", defaults: new { controller = "A", action = "B", C= @"[a-zA-Z0-9_]+", D= @"\d{8}", E= @"\d +" } ); 这句在后边的话,就不生成是?这样方式的。而不是我规划的那样。
尋覓世間路 2014-01-07
  • 打赏
  • 举报
回复
routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带有参数的 URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
zhiqiang21 2014-01-07
  • 打赏
  • 举报
回复
页面加载的时候首先匹配的是你的Controller方法,然后在相应的controller里面寻找对应的Action方法的,你的路由配置错了

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧