DropdownList在剃刀视图页面上选择的值

时间:2014-10-10 10:46:38

标签: c# asp.net razor

我在View Layout页面上有以下DropDownList,它显示SQL数据库中的语言。我希望下拉列表中的所选项目是页面当前文化(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" />

1 个答案:

答案 0 :(得分:2)

这不是真正的“剃刀”代码。它主要是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)
    });
}

只有当(item.language_UI == originalCulture)属性与language_UI包含完全相同的字符串时,语句originalCulture才会成立,因此您的代码应该正常运行。