【问题标题】:DropDownList selected value on a razor view page剃刀视图页面上的 DropDownList 选定值
【发布时间】:2014-10-10 10:46:38
【问题描述】:

我在显示来自 SQL 数据库的语言的视图布局页面上有以下 DropDownList。我希望下拉列表的选定项目是页面当前文化(originalCulture)。我怎样才能做到这一点?

例如,如果页面当前文化 (originalCulture="en") 等于 (item.language_UI="en"),则 DDL 所选项目应为英语 (item.language)。我知道这很容易,但我不熟悉 Razor 代码。有人可以帮忙吗?

@{
var db = Database.Open("DefaultConnection");
var listLanguage = "SELECT language, language_UI FROM Languages";
var originalCulture = Convert.ToString(System.Globalization.CultureInfo.CurrentCulture.TwoLetterISOLanguageName);

List<SelectListItem> languagedropdownlistdata = new List<SelectListItem>();
bool isSelected = false;
foreach (var item in db.Query(listLanguage))
{
    languagedropdownlistdata.Add(new SelectListItem
    {
        Text = item.language,
        Value = item.language_UI,
        Selected = isSelected
    });
}

}

这是内容页面上的 DropDownList:

@Html.DropDownList("lang", languagedropdownlistdata
<input type="submit" value="Select" />

【问题讨论】:

    标签: c# asp.net razor


    【解决方案1】:

    这不是真正的“剃刀”代码。它主要是 C# :)

    您的isSelected 变量似乎总是false。 您需要将循环体更改为以下内容:

    foreach (var item in db.Query(listLanguage))
    {
        languagedropdownlistdata.Add(new SelectListItem
        {
            Text = item.language,
            Value = item.language_UI,
            Selected = (item.language_UI == originalCulture)
        });
    }
    

    只有当language_UI 属性包含与originalCulture 完全相同的字符串时,声明(item.language_UI == originalCulture) 才会为真,因此您的代码应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 2012-04-02
      • 2022-11-28
      • 2020-01-26
      • 2019-03-20
      相关资源
      最近更新 更多