我正在开发一个项目,我使用了默认路由
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}/{name}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional, name = UrlParameter.Optional } // Parameter defaults
);
我有一个用户控制器和方法,如索引,创建和详细信息
我不想创建像http://mysite/users/details/111/somename这样的链接 相反,我想创建http://mysite/users/111/somename 像stackoverflow类的网址。 我知道我可以通过注册这样的路线(在默认路线之前)来实现
routes.MapRoute(
"UsersDetails", // Route name
"Users/{id}/{name}", // URL with parameters
new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional } // Parameter defaults
);
然后我的所有其他网址开始创建问题。例如,如果我有网址 http://somesite/users/registersuccess
是否存在解决此问题的方法,或者我应该注册所有网址。
此致
成员Parminder
答案 0 :(得分:0)
您的路线的id
参数需要约束:
routes.MapRoute(
"UsersDetails",
"Users/{id}/{name}",
new { controller = "Users", action = "Details", id = UrlParameter.Optional, name = UrlParameter.Optional },
new { id="\d+" }
);
然后你的其他路线不会受到影响。