Asp.net mvc 4 控制器中的mvc4 bind@Html.DropDownListFor

Asp.net mvc 4 控制器中的mvc4 bind@Html.DropDownListFor,asp.net-mvc-4,html.dropdownlistfor,Asp.net Mvc 4,Html.dropdownlistfor,如何将@Html.DropDownListFor绑定到来自模型的值? 我的模型: public UpdatePersonalModel() { Titles = new List<SelectListItem>(); Titles.Add(new SelectListItem{Text = "Mr",Value = "Mr"}); Titles.Add(new SelectListItem{Text = "Mrs",Value = "Mrs"}); Titles.A

如何将@Html.DropDownListFor绑定到来自模型的值? 我的模型:

public UpdatePersonalModel()
{
  Titles = new List<SelectListItem>(); 
  Titles.Add(new SelectListItem{Text = "Mr",Value = "Mr"});
  Titles.Add(new SelectListItem{Text = "Mrs",Value = "Mrs"});
  Titles.Add(new SelectListItem{Text = "Miss",Value = "Miss"});
  Titles.Add(new SelectListItem{Text = "Ms",Value = "Ms"});
  Titles.Add(new SelectListItem{Text = "Dr",Value = "Dr"});
  Titles.Add(new SelectListItem{Text = "Hon",Value = "Hon"});
  Titles.Add(new SelectListItem{Text = "Prof",Value = "Prof"});
}
public List<SelectListItem> Titles { get; set; }
public string Title { get; set; }
...
...
他认为: 当我有model.Title时,会显示model值,但它会复制该值,并且不会绑定
@Html.DropDownListFor(m=>m.Title,Model.Titles,Model.Title,new{@class=“EnrtyFeildSelect”})
在这里它总是带第一个值
@Html.DropDownListFor(m=>m.Title,Model.Titles,new{@class=“EnrtyFeildSelect”})

第二种方法是正确的方法。如果在发送到视图之前设置了标题,是否设置了正确的值?该值是否传回控制器?不,这是问题所在。ddl总是设置为第一个值,而不是我在控制器中传递的值。这不重要,但请尝试将该值更改为数字而不是字符串,然后看看这是否有区别。另外,请尝试设置一个“选择”列表项的“选定”属性,并查看该选定项是否会显示在视图中
public ActionResult UpdatePersonal()
{
    //...
    var model = new UpdatePersonalModel();
    model.Title = webContext.CurrentUser.Title;
    model.FirstName = webContext.CurrentUser.First_Name;
    model.MiddleName = webContext.CurrentUser.q_Middle_Name;
    //...

    return View(model);
}