自定义内容 - MVC和资源文件

时间:2013-09-09 05:41:25

标签: asp.net-mvc razor resources

我正在创建一个使用表单身份验证的全新网站。每个用户都是公司的成员。每家公司都有一个不同的样式表应用于网站,因此给出了不同的外观。我通过在身份验证时在HTML标记中应用自定义类来实现此目的。然后,CSS文件只是查找.customer #logonname样式元素。

我正在使用资源文件来处理本地化,因为客户可能会说不同的语言。这是有效的,我控制住了。我有每个资源文件使用自定义命名空间,这在我的剃刀视图中工作得很好。

问题是不同的客户希望显示不同的内容。例如,客户1希望登录字段标签显示“用户名”,而客户2希望相同的标签说“登录ID”。

我想知道资源文件是否是一种很好的方法。我可以为每个客户(和语言)创建单独的资源文件,为每个资源文件分配一个自定义命名空间,然后在视图中引用该命名空间以获取适当的内容。例如,我有两个名为Customer1.index.resx和Customer2.index.resx的资源文件。这些文件为每位客户提供英文翻译。 Customer1.index.resx正在使用Customer1.Translation的命名空间,而Customer2.index.resx正在使用Customer2.Translation的命名空间。

索引视图中可能有一个名为lblLogon的标签。 Customer1.index.lblLogon的值为“UserName”,而Customer2.index.lblLogon的值为“Logon ID”。当我使用这些引用中的任何一个时,数据都会很好 - 例如
<div>@Customer1.index.lblLogon</div>输出 - <div>UserName</div>
<div>@Customer2.index.lblLogon</div>输出 - <div>Logon ID</div>

有没有办法可以在身份验证时创建一个“全局”命名空间(称为Translation),并根据用户的公司成员资格(从身份验证机制返回的数据)将该命名空间映射到Customer1.Translation或Customer2.Translation。然后,我的观点可以说明以下内容,根据公司生成不同的HTML。

<div>@Translation.index.lblLogon</div>

非常感谢您的帮助。

由于 史蒂文伍尔斯顿
w:http://www.webdesignwith.net

0 个答案:

没有答案