【问题标题】:Cannot get a dropdown list to pass data from view to controller?无法获取下拉列表以将数据从视图传递到控制器?
【发布时间】:2018-03-23 04:11:12
【问题描述】:

我已经为休假请求系统设置了一个使用实体框架的 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。使用以下 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)
    {

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

【问题讨论】:

  • 能否请您展示一下,您是如何初始化 ViewBag 的。

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


【解决方案1】:

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

@Html.DropDownList("LeaveType")

...或使用

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

方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多