c# – DisplayName和DisplayFor的MVC全球化

c# – DisplayName和DisplayFor的MVC全球化,第1张

概述我正在使用MVC开发多语言(英语,阿拉伯语)应用程序.此应用程序应根据资源文件显示标签和数据. 数据库旨在将翻译的字段存储在相同的表中 Gender[Id, Name,ArabicName] Person[Id,FirstName,FatherName,FamilyName,ArabicFirstName, ArabicFatherName,ArabicFamilyNam 我正在使用MVC开发多语言(英语,阿拉伯语)应用程序.此应用程序应根据资源文件显示标签和数据.

数据库旨在将翻译的字段存储在相同的表中

Gender[ID,name,arabicname]  Person[ID,Firstname,Fathername,Familyname,arabicFirstname,arabicFathername,arabicFamilyname,GenderID]

我设法通过使用以下方式在name和arabicname字段之间切换来显示基于资源的所有下拉列表:

VIEwBag.Gender= new SelectList(mEntitIEs.Genders.ToList(),"ID",Resources.Global.name);    // name value in the Global.resx is name and in Global.ar.resx is arabicname

并通过使用以下方式显示LabelFor:

[display(name="Firstname",ResourceType =typeof(Resources.Global))]public string Firstname{get;set;}

我的问题是,是否可以使用displayFor在Firstname值和arabicFirstname之间切换以及如何在MVC中实现这一点?

例如显示:Firstname = Antony for english,arabicFirstname =انطوانfor arabic

解决方法 我做了以下解决方法来使事情有效

>为了区分资源文件中的标签和数据值,我使用了对流:

Firstname代表标签,FirstnameResource代表数据

示例资源文件将是:

Firstname => value = First name (for english),الاسم الاول (for arabic)   FirstnameResource = > value = Firstname ( for english),arabicFirstname (for arabic)

>我编写了以下HTMLHelper

public static MvcHTMLString displayResourceFor<TModel,TValue>(this HTMLHelper<TModel> helper,Expression<Func<TModel,TValue>> Expression){    var rm = new ResourceManager("Resources.Global",System.Reflection.Assembly.Load("App_GlobalResources"));    var resource = rm.GetString(string.Format("{0}Resource",ExpressionHelper.GetExpressionText(Expression)));    var value = helper.VIEwContext.VIEwData.GetVIEwDataInfo(resource).Value.ToString();    return MvcHTMLString.Create(value);}

>您可以使用此扩展程序如下:

@ HTML.displayResourceFor(M => m.Firstname)

这种解决方法帮助我解决了这个问题,但也许有另一个直接的解决方案.

总结

以上是内存溢出为你收集整理的c# – DisplayName和DisplayFor的MVC全球化全部内容,希望文章能够帮你解决c# – DisplayName和DisplayFor的MVC全球化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1231426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存