C# ASP.NET多语言MVC Razor中的动态模型绑定

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

我想在我的ASP.NET MVC项目中使用多语言结构。我只有两种语言。因此,我在数据库中为两种语言保留了两个字符串字段(例如:Header_EN和Header_TR)

我从.resx文件中动态获取当前语言值(例如:EN或TR)。但在我看来,我必须使用动态模型。通常情况下,我将此用于单一语言:

    @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
,并在控制器中将其设置为适当的本地化值。

是否可以绑定到同一个模型,但基于当前区域性填充该模型?是否可以绑定到同一个模型,但基于当前区域性填充该模型?