C# ASP.NET多语言MVC Razor中的动态模型绑定
我想在我的ASP.NET MVC项目中使用多语言结构。我只有两种语言。因此,我在数据库中为两种语言保留了两个字符串字段(例如:Header_EN和Header_TR) 我从.resx文件中动态获取当前语言值(例如:EN或TR)。但在我看来,我必须使用动态模型。通常情况下,我将此用于单一语言:C# ASP.NET多语言MVC Razor中的动态模型绑定,c#,asp.net-mvc,razor,multilingual,C#,Asp.net Mvc,Razor,Multilingual,我想在我的ASP.NET MVC项目中使用多语言结构。我只有两种语言。因此,我在数据库中为两种语言保留了两个字符串字段(例如:Header_EN和Header_TR) 我从.resx文件中动态获取当前语言值(例如:EN或TR)。但在我看来,我必须使用动态模型。通常情况下,我将此用于单一语言: @model MyProject.Models.tTextTable <div class="TextDetailContainer"> @Html.Raw(M
@model MyProject.Models.tTextTable
<div class="TextDetailContainer">
@Html.Raw(Model.MyTextDetail_EN)
</div>
@model MyProject.Models.tTextTable
@Html.Raw(Model.MyTextDetail_EN)
我想对多语言使用一个动态模型值,比如:
@model MyProject.Models.tTextTable
<div class="TextDetailContainer">
@Html.Raw(Model.("MyTextDetail_" + Resources.Language.CurrentLanguage))
</div>
@model MyProject.Models.tTextTable
@Html.Raw(Model.(“MyTextDetail”+Resources.Language.CurrentLanguage))
使用此逻辑是否有可能实现此目的,或者是否有其他方法在Razor中创建动态模型?如果您的模型是
动态的
,则您可以将其强制转换为IDictionary
,并从中获取值:
var dictionary = (IDictionary<string, object>)model;
var text = dictionary ["MyTextDetail_" + Resources.Language.CurrentLanguage] as string;
var字典=(IDictionary)模型;
var text=dictionary[“MyTextDetail”+Resources.Language.CurrentLanguage]作为字符串;
虽然您可能应该有一个属性
mytextdail
,并在控制器中将其设置为适当的本地化值。如果您的模型是动态的
,则可以将其强制转换为IDictionary
,并从中获取值:
var dictionary = (IDictionary<string, object>)model;
var text = dictionary ["MyTextDetail_" + Resources.Language.CurrentLanguage] as string;
var字典=(IDictionary)模型;
var text=dictionary[“MyTextDetail”+Resources.Language.CurrentLanguage]作为字符串;
虽然您可能应该有一个属性
mytextdail
,并在控制器中将其设置为适当的本地化值。是否可以绑定到同一个模型,但基于当前区域性填充该模型?是否可以绑定到同一个模型,但基于当前区域性填充该模型?