我有自己的Razor视图引擎实现,允许我处理部分视图和视图“提供”,以便我向客户端提供我的视图的本地化版本。
我使用protected override IView CreateView
覆盖视图选择过程并注入语言识别逻辑。
我也有protected override IView CreatePartialView
,但是当我加载一个假设要渲染我的_Layout.cshtml
CreatePartialView的视图时,我没有加强。
我需要覆盖哪种ViewEngine方法来“捕获”_layout页面呈现以执行语言感知替换?
答案 0 :(得分:0)
一种方法是通过设置Layout属性,从特定于语言的视图指定特定于语言的布局:
@{
Layout = "~/Views/Shared/_Layout.french.cshtml";
}
这仍然不是一个好方法,因为它打破了整个“视图/语言”链接范例,它依赖于视图引擎覆盖代码。
但它更灵活,因为允许远离主视图命名约定。