我想在 policyId = 7 的下拉列表中选择默认值,但它没有选择该值,我做错了什么?
Controller :
var pm = new ManagerClass();
IEnumerable<myClass> po = pm.GetDataFromDb();
IEnumerable<SelectListItem> Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 });
ViewBag.Policies = Policies;
查看:
@Html.DropDownListFor(m => m.PolicyID, ViewBag.Policies as IEnumerable<SelectListItem>, new { @class = "dropdown-field"})
最佳答案
这是因为它实际上并没有选择SelectList
中的值。
首先,为了让它更好,将项目放在 View 模型中以防止转换(这也是更好的做法):
public class MyModel
{
public int PolicyID { get; set; }
public List<SelectListItem> Policies { get; set; }
//rest of your model
}
然后填充它:
var model = new MyModel();
model.Policies = po
.Select(p => new SelectListItem
{
Text = p.PolicyName,
Value = p.PolicyID.ToString(),
Selected = p.PolicyID == currentPolicyId //change that to whatever current is
})
.ToList();
然后在你看来,做:
@Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"})
关于c# - mvc 4下拉选择默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16664907/