[英]C#, ASP.NET MVC / MVC2: Add wildcard route for specific controller - help building route
可以说我有一个名为Store的控制器。 有一个索引方法:
public ActionResult Index(string val, long? id, int? id2)
{
return View();
}
我想获取类似的东西:
/my-store/some-text
/my-store/some-text/
/my-store/some-text/123456789012335
/my-store/some-other-text/4562343462345
/my-store/some-other-bla-text/4562343462345/1
/my-store/some-other-bla-bla-text/45345723554/2
因此,要求是:
+控制器链接文本为“我的商店”,并且必须路由到商店控制器
+如果只有文本和ID,则将ID2保留为空
+如果只有一些文本且没有id,则只需将id和id2保留为空
以下正确吗?
routes.MapRoute(
"Store", // Route name
"my-store/{val}/{id}/{id2}", // URL with parameters
new { controller = "Store", action = "Index", id = UrlParameter.Optional, id2 = UrlParameter.Optional }
);
提前谢谢你的帮助!
是的,看起来不错,只不过您需要在路由中为{val}定义一个默认值:
routes.MapRoute(
"Store", // Route name
"my-store/{val}/{id}/{id2}", // URL with parameters
new { controller = "Store", action = "Index", val = "", id = UrlParameter.Optional, id2 = UrlParameter.Optional }
只要记住要清理val中的字符串,就好像您有一些时髦的字符时,您的链接将无法工作。 就像说val等于“ thisis / val”一样 ,那么您的链接将是:
/ my-store / thisis / val / 1212/12
不会打到您的路线,最有可能返回404
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.