我想在我的应用程序中使用多个路由,并且我正在使用以下代码。
routes.MapRoute(
name: "Custom",
url: "{lang}/{action}/{id}/{Title}/{type}",
defaults: new
{
controller = "Main",
action = "Default",
id = UrlParameter.Optional,
Title = UrlParameter.Optional,
lang = "en",
type = UrlParameter.Optional
}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = "Admin",
action = "Login",
id = UrlParameter.Optional
}
);
问题
这适用于/en/Default/id/title/type
这里default
是我的操作名称。
用户/Admin/Login
何时抛出服务器错误
答案 0 :(得分:0)
我认为你必须为此使用路线约束。
可能跟随。它没有经过测试,但路线约束可以解决您的问题。
routes.MapRoute(
name: "Custom",
url: "{lang}/{action}/{id}/{Title}/{type}",
defaults: new
{
controller = "Main",
action = "Default",
id = UrlParameter.Optional,
Title = UrlParameter.Optional,
lang = "en",
type = UrlParameter.Optional
},
new { lang= "[en|us]"}
}
答案 1 :(得分:0)
这在两种情况下均可正常工作。
routes.MapRoute(
"Custom",
"{lang}/{action}/{id}/{Title}/{type}",
new
{
controller = "Main",
action = "Default",
id = UrlParameter.Optional,
Title = UrlParameter.Optional,
lang = "en",
type = UrlParameter.Optional
}, new { lang = @"(en)|(hi)|(es)" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new
{
controller = "Main",
action = "Default",
id = UrlParameter.Optional
}
);