假设我有一个名为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 null
+如果只有一些文本而没有id,那么只留下id和id2 null
以下是否正确?
routes.MapRoute(
"Store", // Route name
"my-store/{val}/{id}/{id2}", // URL with parameters
new { controller = "Store", action = "Index", id = UrlParameter.Optional, id2 = UrlParameter.Optional }
);
提前感谢您的帮助!
答案 0 :(得分:1)
是的,除非您需要在路线中为{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”,那么您的链接将是:
/我的商店/ THISIS / VAL /12分之1212
哪个不符合您的路线,很可能会返回404