无法获取下拉列表以将数据从视图传递到控制器?

时间:2017-10-11 13:05:07

标签: c# asp.net asp.net-mvc entity-framework razor

我已经使用实体框架为请假系统设置了一个MVC Web应用程序。模型RequestModel具有值LeaveType,我想让用户从下拉列表中进行选择。视图页面上LeaveType输入的代码如下:

    <div class="form-group">
        @Html.Label("Leave Type", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("LeaveTypes")
        </div>
    </div>

通过viewbag在字符串列表中传递休假类型,并在查看网页时显示正常,并允许您选择一个。但是,在调试时我可以看到,无论你选择什么都不会传递给HttpPost Create方法,而只是将值显示为null。 post create使用以下Bind命令打开:

    // POST: Request/Create
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "ID,LeaveType,FullName,Email,StartDate,EndDate,LeaveLength,Details,RequestDate,ReplyDate,Accepted,Special")] RequestModel requestModel)
    {

我非常感谢我可能错过的任何想法。我可以添加代码的任何其他部分,如果它们有助于找到问题的根源,请告诉我。

1 个答案:

答案 0 :(得分:1)

您创建一个名为 LeaveTypes 的下拉列表,但将其绑定为 LeaveType 。相应地更改下拉列表的名称:

@Html.DropDownList("LeaveType")

...或使用

Html.DropDownListFor(m => m.LeaveType, ...)

方法