得到名单的SelectedValue DDL
问题描述:
如果我有这样的方法:得到名单的SelectedValue <SelectListItem> DDL
public static List<SelectListItem> lstPassFail()
{
List<SelectListItem> lstPossiblePassFail = new List<SelectListItem>()
{
new SelectListItem() { Text = "Pass", Value = "Pass" },
new SelectListItem() { Text = "Fail", Value = "Fail" },
};
return lstPossiblePassFail;
}
然后在我的编辑动作我这样做:
ViewBag.PassFail = ClassName.lstPassFail();
我
编辑视图
然后我这样做:
@Html.DropDownList("PassFail", (List<SelectListItem>)ViewBag.PassFail, "-- Please Select a Result --", htmlAttributes: new { @class = "form-control" })
既然此记录已存在于数据库中,并且该字段已具有值,我如何显示该selectedvalue,而不是默认情况下选择第一个选项的DDL?
我知道你可以用SelectList的重载方法做到这一点,但是这可以按照我上面描述的方式完成吗?
任何帮助表示赞赏。
答
我已经想通了。
我改变:
ViewBag.PassFail = ClassName.lstPassFail();
到
ViewBag.PassFail = new SelectList(ClassName.lstPassFail(), "Value", "Text", chosenWTest.PassFail);
然后在我看来,我改变了下拉列表这个
@Html.DropDownList("PassFail", null, "-- Please Select a Result --", htmlAttributes: new { @class = "form-control" })
这保存在记录中字段的值。
+0
可怕的解决方案(没有强大的绑定,没有验证等)。绑定到你的模型。另请参阅[如果我指定viewBag名称等于模型属性名称,是否会有任何冲突(http://*.com/questions/37161202/will-there-be-any-conflict-ifi-i-指定最viewbag名到待等于对所述模/ 37162557#37162557) –
使用具有名为'PassFail'而不是'ViewBag'的属性的模型? – GSerg
你为什么不使用'@ Html.DropDownListFor'的任何原因? – JamieD77
@ JamieD77我想通了。我发布了我的答案 –