2014-10-10 62 views
0

我在顯示來自SQL數據庫的語言的視圖佈局頁面上具有以下DropDownList。我希望下拉列表中選定的項目成爲當前頁面文化(originalCulture)。我怎麼能做到這一點?例如,如果頁面當前文化(originalCulture =「en」)等於(item.language_UI =「en」),則DDL選擇的項目應該是英語(item.language)。我知道這很簡單,但我不熟悉剃刀代碼。有人可以幫忙嗎?DropDownList在剃刀視圖頁上選擇的值

@{ 
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

完美.....現在代碼運行良好。謝謝! – Gloria 2014-10-10 11:42:22