我有一个路线,可以按流派、标签、风格等显示多语言网站的绘画作品。
看起来不错,类似于
en/Genre/allegorical-painting
但是,客户想要的是排除英语中的 en 并只得到 p>
Genre/allegorical-painting
我默认使用“en”,但它始终呈现......当我手动删除它时,出现 404 错误。这是我的规则定义:
var searchActionsConstraint = new RouteValueDictionary { { "action", "Style|Tag|Painting-School|Art-Movement|Artist-by-Genre|Gallery|Search|Genre|Technique|Material" }, {"lang", "en|es|fr"} };
DomainRoute wikiSearchRoute = new Route("{lang}/{action}/{SearchTerm}/{CurrentPage}/{SearchCategory}/{searchTextMode}",
new RouteValueDictionary(new
{
lang = "en",
controller = "WikiSearch",
action = "",
SearchTerm = "Any",
CurrentPage = "1",
SearchCategory = "Painting",
searchTextMode = "SearchTags"
}), searchActionsConstraint, new DomainRouteHandler());
RouteTable.Routes.Add("WikiSearchRoute", wikiSearchRoute);
一般来说,如何在 MVC 中第一次隐藏默认路由参数?
最佳答案
您可以添加第二条不带语言的路由,并为其指定默认值
DomainRoute wikiSearchRouteEn = new Route("{action}/{SearchTerm}/{CurrentPage}/{SearchCategory}/{searchTextMode}",
new RouteValueDictionary(new
{
lang = "en",
controller = "WikiSearch",
action = "",
SearchTerm = "Any",
CurrentPage = "1",
SearchCategory = "Painting",
searchTextMode = "SearchTags"
}), searchActionsConstraint, new DomainRouteHandler());
RouteTable.Routes.Add("WikiSearchRouteEn", wikiSearchRouteEn);
关于asp.net-mvc - 路由中第一个参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245566/