我是ASP.NET MVC 4的新手,我试图让应用程序使用来自不同国家的资源文件的文本(Resource.en-us.resx,Resource.es-Es.resx)
我曾经有一个LocalResource
文件夹,我可以从Model
这样访问:
using Concordia_CRM.LocalResource;
[Required]
[Display(Name = "SD_NombreEmpresa", ResourceType = typeof(Resource))]
public string NombreEmpresa { get; set; }
但后来我也读到了一些提及App_LocalResources
的答案,我已设法应用这些解决方案来访问VIEW中的文本,但现在不知道如何更改模型以访问它们。
我已阅读问题和答案:
How to use app_GlobalResource or app_LocalResource?
How does the App_LocalResources work with MVC?
但是仍然没有找到一种方法来从VIEW和紧凑且标准的模型访问资源文件的文本
从模型中我尝试了这个
using Concordia_CRM.App_LocalResources <-- but this is not recognized
我可以输入Resources.Resource.
但没有其他可用的东西,我不想在每个视图中都有.resx文件
答案 0 :(得分:1)
打开Resources.resx文件,在顶部有一个组合选择访问修饰符,更改为公共,您将能够通过
访问它们Resources.STRING1
确保在web.config中有名称空间部分
<pages>
<namespaces>
<add namespace="ProjectName.App_LocalResources" />
</namespaces>
</pages>
在模型类中,您可以访问资源:
public class model1
{
[Required(ErrorMessage=App_LocalResources.Resource1.String1)]
public string MyProp { get; set; }
}
答案 1 :(得分:0)
原来你只需要将这一行添加到任何模型
using Resources; //<<-- This line
namespace Concordia_CRM.Models
{
public class SolicitudDemo
{
[Required]
[Display(Name = "SD_NombreEmpresa", ResourceType = typeof(Resource))]
public string NombreEmpresa { get; set; }
...
}
答案 2 :(得分:0)
Folloing this观点我只为资源文件添加一个单独的项目,并添加对Web应用程序项目的引用。
然后,我不仅会使用我的数据注释,还可以在我的控制器和视图上使用,而无需使用导入或使用语句:
@section scripts {
<script type="text/javascript">
$(function () {
$("#frm").data("CorregirError", "@Resources.CorregirError");
});
</script>
}