MVC如何在DropDownList后面设置Model的值

时间:2017-04-24 19:13:46

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我有一个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。这两个下拉列表为空。查看页面时正确选择了这些值,但它们未正确映射到表单上的模型。

1 个答案:

答案 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 - 我知道它第一次没有为你工作,但我强烈建议你重新审视它。