2013-04-06 96 views
0

下面是我的控制器的Edit方法。一切工作正常,但代理FixedOrVariable下拉的當前值沒有被設置爲默認值。但是,我可以正確編輯此值。ASP MVC3 - 下拉列表沒有設置正確的默認值

該字段FixedOrVariable是該模型中的一個字符字段。它的值是FV(總是大寫)。

這裏是控制器方法

public ActionResult Edit(int id) 
    { 
     var banklistagentid = db.BankListAgentId.Find(id); 
     ViewBag.BankID = new SelectList(db.BankListMaster, "ID", "BankName", banklistagentid.BankID); 

     SelectList tmpList = new SelectList(new[] { "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NA", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "US", "VT", "VI", "VA", "WA", "WV", "WI", "WY" }); 
     ViewBag.StateCodeList = tmpList; 

     var fixedOrVariable = new[] {new {Text = "Fixed", Value = "F"}, new {Text = "Variable", Value = "V"}}; 
     ViewBag.FixedOrVariable = new SelectList(fixedOrVariable, "Value", "Text", banklistagentid.FixedOrVariable); 

     return View(banklistagentid); 
    } 

這裏是從視圖

<div class="editor-field"> 
     @Html.DropDownListFor(model => model.FixedOrVariable, (SelectList)ViewBag.FixedOrVariable) 
    </div> 
+0

請檢查大約同樣的問題[這裏](http://stackoverflow.com/questions/781987/how-can-i-get-this-asp-net-mvc幾個答案-selectlist到工作/ 11705380#11705380)。 – ararog 2013-04-06 18:33:53

+0

您的下拉菜單項是否正確顯示? – 2013-04-06 18:34:18

+0

@ararog:不需要重寫'ToString'方法,應該是一個更簡單的解決方案。 – NealR 2013-04-06 18:39:19

回答

1

這可能是一個最大的錯誤,我見過的人做在MVC下拉列表中選擇代碼。您不能將您的選擇列表命名爲與所選項目變量相同的名稱。

將其更改爲ViewBag.FixedOrVariableList

+0

完美,謝謝! – NealR 2013-04-06 18:43:03