簡體   English   中英

ASP.NET MVC Razor中用於多語言的動態模型綁定

[英]Dynamic model binding in ASP.NET MVC Razor for multilanguage

我想在我的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

    <div class="TextDetailContainer">
        @Html.Raw(Model.("MyTextDetail_" + Resources.Language.CurrentLanguage))
    </div>

有沒有可能用這種邏輯來做到這一點,或者有另一種方法可以在Razor中創建動態模型?

如果模型是dynamic則可以將其IDictionary<string, object>IDictionary<string, object>並從中獲取值:

var dictionary = (IDictionary<string, object>)model;
var text = dictionary ["MyTextDetail_" + Resources.Language.CurrentLanguage] as string;

盡管您可能應該擁有一個MyTextDetail屬性,然后在控制器中將其設置為適當的本地化值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM