2017-08-11 51 views
-4

我使用這個代碼來設置所選值MVC DropdownlistFor組選定的價值不能用?C#

foreach (var item in clsObj.Branch_SName) 
{ 
    if (item.Value.Split('|')[5] == Session["Branch_ID"].ToString()) 
    { 
     item.Selected = true; //debugger comes here ok but not set value as selected 
     break; 
    } 
} 

但我返回查看返回查看

return View(clsObj); 

結合下拉爲

@Html.DropDownListFor(m => m.Branch_Code, Model.Branch_SName) 

但我沒有設置選定的值當我調試模型選擇列表返回clsObj.Branch_SName沒有選定的VA略。爲什麼還要告訴我下拉列表更改事件?

+2

決定選擇什麼(即模型綁定如何工作)的'Branch_Code'的值 - 設置'SelectListItem'的'Selected'屬性在綁定屬性時被忽略。如果它與您的某個選項值相匹配,那麼該選項將被選中。 –

+0

你有沒有看到調試器那裏我寫的是值匹配,但問題是它不會設置選定的值 –

+0

這與什麼有關。你讀了我的評論(設置'Selected'值被忽略!) –

回答

0

其實你可以設置在Branch_Code一個值,該值將被綁定到模型選擇的值。所以你需要這樣做。

clsObj.Branch_Code= selectedBranCode; //You need to perform filter operation from your collection. 
+0

謝謝'selected.Selected = true;'也需要 –

0
List<SelectListItem> lst = GENERIC.ToSelectListItem(ds_1.Tables[0], "Branch_SName", "Branch_Code"); 

var selected = lst.SingleOrDefault(item => item.Value.Split('|')[5] == Session["pUser_Branch_ID"].ToString()); 

selected.Selected = true; //important 
clsObj.Branch_SName = new SelectList(lst, "Value", "Text", selected); //important 
clsObj.Branch_Code = selected.Value;//important 

這工作選擇分支代碼和選擇真正