2014-10-10 3 views
0

У меня есть следующий DropDownList на странице «Вид макета», отображающий языки из базы данных SQL. Я хочу, чтобы выбранный элемент раскрывающегося списка был текущей культурой страницы (originalCulture). Как я могу это сделать?DropDownList выбранное значение на странице просмотра бритвы

Например, если текущая культура текущей страницы (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" /> 

ответ

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, поэтому ваш код должен работать правильно.

+1

Perfect ..... Теперь код работает хорошо. Благодаря! – Gloria

Смежные вопросы