我正在尝试为Views中的每种语言设置特定文件夹。 (我知道这不是最好的方法,但现在必须采用这种方式)
例如
/Views/EN/User/Edit.aspx
/Views/US/User/Edit.aspx
这些都使用相同的控制器和模型,但每种语言都有不同的视图。
在Global.asax.cs
我有:
routes.MapRoute(
"Default", // Route name
"{language}/{controller}/{action}/{id}", // URL with parameters
new { language = "en", controller = "Logon", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new { language = @"en|us" } // validation
);
这可以正常但总是指向相同的视图 如果我将路径放到Lanagugage文件夹中,它可以工作:
return View("~/Views/EN/User/Edit.aspx");
但显然这不是一个很好的方法 反正有没有让MVC查看正确的语言文件夹?
我知道这不是进行本地化的最佳方式,但我无法使用资源文件。
答案 0 :(得分:0)
更改ViewEngine以使用路线参数
修改强>
由于为视图扫描的路径列表是静态的,因此根据上面的链接更改列表,根据某些控制器实例,无法选择不同的视图。 这似乎是一个更有希望的起点:
它会覆盖CreateView以获取渲染的视图。该示例更改了主页,但希望它也适用于视图。