2016-09-27 60 views
0

如果我有這樣的方法:得到名單的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我想通了。我發佈了我的答案 –

回答

1

我已經想通了。

我改變:

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://stackoverflow.com/questions/37161202/will-there-be-any-conflict-ifi-i-指定最viewbag名到待等於對所述模/ 37162557#37162557) –