我有一个DropDownList
没有作为DropDownListFor
工作,所以它已被放弃。
如何将DropDownList作为视图中项目的模型值附加。这是我的代码。
@model DirectoryMVC.Models.get_administrators_Result
@{
List<SelectListItem> listItems2 = new List<SelectListItem>();
listItems2.Add(new SelectListItem { Text = "Mr.", Value = "Mr." });
listItems2.Add(new SelectListItem { Text = "Ms.", Value = "Ms." });
listItems2.Add(new SelectListItem { Text = "Dr.", Value = "Dr." });
listItems2.Add(new SelectListItem { Text = "Miss", Value = "Miss" });
listItems2.Add(new SelectListItem { Text = "Mrs.", Value = "Mrs." });
listItems2.Add(new SelectListItem { Text = "Rev.", Value = "Rev." });
foreach (SelectListItem li2 in listItems2)
{
if (li2.Value == this.Model.title)
{
li2.Selected = true;
}
}
ViewBag.Titles = listItems2;
List<SelectListItem> admins = ViewBag.JobTitle;
foreach (SelectListItem item in admins)
{
if (this.Model.admin_code.TrimEnd(' ') == item.Value)
{
item.Selected = true;
}
else
{
item.Selected = false;
}
}
ViewBag.JobTitle = admins;
}
@Html.HiddenFor(m=>m.admin_id)
<div class="col-md-1">@Html.DropDownList("Titles")
</div>
<div class="col-md-2"> @Html.TextBoxFor(m => m.first_name)
</div>
<div class="col-md-2"> @Html.TextBoxFor(m => m.last_name)
</div>
<div class="col-md-3"> @Html.DropDownList("JobTitle")
</div>
<div class="col-md-3 pull-left"> @Html.TextBoxFor(m => m.email)
</div>
在控制器中,admin_code和admin_title。这两个下拉列表为空。查看页面时正确选择了这些值,但它们未正确映射到表单上的模型。
答案 0 :(得分:1)
如果这仍然是您正在使用的型号:
public partial class get_administrators_Result
{
public int admin_id { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public string title { get; set; }
public string email { get; set; }
}
然后,您只需将@Html.DropDownList("Titles")
更改为@Html.DropDownList("Title")
即可。要使模型绑定起作用,表单元素需要与模型属性具有相同的名称。
作为旁注,你真的应该使用DropDownListFor
- 我知道它第一次没有为你工作,但我强烈建议你重新审视它。