2017-08-11 63 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 

这工作选择分支代码和选择真正