我已经开始研究MVC项目了,我遇到了一些我认为自己陷入困境的情况。我需要将现有的MVC3站点转换为多语言。因为我是新手,我可能会在解释时使用错误的单词/ definations / keywords for MVC3,所以请光临我。
我有一个HeaderPage.cshtml,它有一个绑定到它的视图模型
@model IHeaderPage
它输出了这个模型的属性:
<h3>@Model.HeaderName</h3>
我从MainPage.cshtml中调用了这个视图
@Html.Partial("HeaderPage")
现在在Controller的Action方法中,我改变了模型的属性
objHeaderPage.HeaderName="Fill your Registeration details";
当我运行项目时,我会看到文本“填写您的注册详情”。
现在我该如何更改文本值,即它应该从我的resx文件中读取。 我已经在 App_LocalResources 文件夹中创建了resx文件。 我听说过,它可以通过显示属性来完成..但我该怎么做呢还是还有其他更好的方法吗?
答案 0 :(得分:1)
This应该回答有关使用DisplayAttribute的问题。
我对我的ViewModel的每个属性使用DisplayAttribute
,但是如果你必须处理自定义消息,例如“由于错误而无法保存记录......”或类似的东西,你可以简单地使用
objHeaderPage.HeaderName = Resources.ResourceMessageName;
框架将自动选择正确的文化。 我更喜欢将所有资源放在一个单独的项目中,以便在需要时只部署dll资源,但您也可以考虑部署resx文件以直接在生产计算机上编辑它们。我想这取决于你喜欢/需要的东西。
答案 1 :(得分:0)
在ViewModel中使用System.ComponentModel.DataAnnotations命名空间。
[Display(Name="Fill your Registeration details")]
public string HeaderName{get;set;}
您也可以使用资源文件。只需查看http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx
即可