我在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" />
答案 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
才会成立,因此您的代码应该正常运行。