【发布时间】:2016-09-01 00:23:46
【问题描述】:
我有一个多语言网站,并且视图内容(包括标记)可能因语言而异。这就是为什么我不能只本地化字符串并将它们放入资源中。
例如,我在俄语中的看法:
<div class="card">
<div class="card-image">
<img src="~/Images/CardHeaders/Business_CreditsSME.jpg" />
</div>
<div class="card-content">
Text
</div>
</div>
用英文查看:
<p>Text</p>
我看到了两种本地化方法:
-
创建 Page.cshtml 和 Page.en.cshtml,并在控制器中创建一个自定义的
LocaleView()方法,该方法将使用本地化的视图文件。- 问题是视图并不总是不同的。这意味着有时我会复制标记。
-
照原样复制我的资源中的所有 HTML 标记,并使用
Html.Raw(Resources.PageView)。- 创建、修改或读取位于资源中的 HTML 并不方便
- 此外,我根本不喜欢
Html.Raw方法,也不喜欢在任何地方使用它
您如何定位不同结构的大视图?
【问题讨论】:
-
我能想到的唯一方法是在控制器方法中使用脏代码来拥有一个开关盒并返回所需的视图。
标签: c# html razor asp.net-mvc-5 asp.net-mvc-views