得到名单的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的重载方法做到这一点,但是这可以按照我上面描述的方式完成吗?

任何帮助表示赞赏。

+0

使用具有名为'PassFail'而不是'ViewBag'的属性的模型? – GSerg

+1

你为什么不使用'@ Html.DropDownListFor'的任何原因? – JamieD77

+0

@ JamieD77我想通了。我发布了我的答案 –

我已经想通了。

我改变:

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) –