C# 更改global.asax中的管线值
我想更改我的默认路线值 现在,我有:C# 更改global.asax中的管线值,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我想更改我的默认路线值 现在,我有: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我想要:{controller}/{id}/{action}
这并不像我已经尝试过的那样简单地更改值。如何实现这一点?您需要两条路线来实现这一点 只是一个粗略的想法,未经测试:
routes.MapRoute(
"Default", // Route name
"{controller}/{id}/{action}", // URL with parameters
new { controller = "Home", action = "Index", id=@"\d+" } // defaults
);
routes.MapRoute(
"Shorter", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index" } // defaults
);
一定要把它们按这个顺序放好
不完全确定操作的签名,可能是
ActionResult Index(int?id)
您需要两条路径来完成此操作
只是一个粗略的想法,未经测试:
routes.MapRoute(
"Default", // Route name
"{controller}/{id}/{action}", // URL with parameters
new { controller = "Home", action = "Index", id=@"\d+" } // defaults
);
routes.MapRoute(
"Shorter", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index" } // defaults
);
一定要把它们按这个顺序放好
不完全确定操作的签名,可能是
ActionResult Index(int?id)
您是否删除了id
的“可选”规范?这是最后一次,这是有原因的。是否有办法更改URL,使id
至少在某些情况下不是最后一个?是否删除了id
的“可选”规范?这是最后一次,这是有原因的。是否有办法更改URL,使id
不是最后一个,至少在某些情况下是这样?它可以工作。但是,在某些情况下,操作的id
签名正在读取0。
在这些情况下,它应该只是{controller}/{action}
,但它正在读取{controller}/0/{action}
。有什么想法吗?你可以在Action方法中处理这个问题。它只是不符合模式。它可以工作。但是,在某些情况下,操作的id
签名正在读取0。
在这些情况下,它应该只是{controller}/{action}
,但它正在读取{controller}/0/{action}
。有什么想法吗?你可以在Action方法中处理这个问题。它只是不符合模式。