2012-05-08 62 views
0

我有我自己的Razor视图引擎的实现,允许我处理部分视图和视图“喂养”,以便我的视图的本地化版本提供给客户端。在ViewEngine覆盖过程_Layout.cshtml渲染

我使用protected override IView CreateView覆盖视图选择过程并注入语言感知逻辑。

我也有protected override IView CreatePartialView但是当我加载一个视图,假设呈现我的_Layout.cshtml CreatePartialView没有得到保证。

我需要重写哪个ViewEngine方法来“捕捉”_layout页面呈现以执行语言感知替换?

回答

0

一种方式是通过设置布局属性像这样指定由特定语言的视图的特定于语言的布局:

@{ 
    Layout = "~/Views/Shared/_Layout.french.cshtml"; 
} 

这仍然不是一个好办法,因为它打破了整个“视图/语言“链接范例,依赖于视图引擎覆盖代码。

但它更灵活,因为允许远离主视图命名约定。