到目前爲止,我學到了如何設置正確的路由,如果我想在URL中使用該語言,例如.../en/MyController/MyMethod
。用下面的路由這個偉大的工程至今:URL,路由和區域中的語言
routes.MapRoute("Default with language", "{lang}/{controller}/{action}/{id}",
new
{
controller = "Report",
action = "Index",
id = UrlParameter.Optional,
}, new { lang = "de|en" });
// Standard-Routing
routes.MapRoute("Default", "{controller}/{action}/{id}", new
{
controller = "Report",
action = "Index",
id = UrlParameter.Optional,
lang = "de",
});
現在我插入一個新的領域Cms
,我呼籲AreaRegistration.RegisterAllAreas();
中的Application_Start()。
只要我把這個區域內的控制器,我錯過了語言的關鍵:
MvcHandler handler = Context.Handler as MvcHandler;
if (handler == null)
return;
string lang = handler.RequestContext.RouteData.Values["lang"] as string;
我如何才能與區域上面的路由工作?
THX任何的竅門,sl3dg3
我不認爲它是用這樣的更新來回答你自己的問題。不管怎麼說,我認爲你的Area路由註冊需要'AreaRegistration'中的'AreaName',這就是爲什麼它需要在那裏覆蓋。 – 2011-03-17 13:49:11
@Mike,爲什麼不回答我自己的問題?基本上它構成了我的答案的完整解決方案。 – sl3dg3 2011-03-17 14:33:54