Controller中的DropDownList SelectedValue在MVC中为零

时间:2018-03-09 04:41:17

标签: asp.net-mvc controller dropdown

我正在使用tempdata绑定我的DDL,它基本上都是用户名和用户ID,如下所示。

<div class="form-group">
    @Html.LabelFor(model => model.AssignedTo, "Assigned To : ", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.DropDownList("UserID", TempData["UserList"] as SelectList, htmlAttributes: new { @class = "control-label col-md-2" })
        @Html.ValidationMessageFor(model => model.AssignedTo, "", new { @class = "text-danger" })
    </div>
</div>

在控制器中我试图获取如下的值。

public ActionResult Create(WMTProjects prj)
{
    prj.AssignedTo

我的值为0,我应该得到相应用户的用户ID。

我工作正常,直到我改变了

@using (Html.BeginForm("Create", "CreateProjects", FormMethod.Post, new { id = "FormId" }))

@using (Html.BeginForm())

并将我的按钮属性更改为

<input type="submit" value="Create" formaction="Create" formmethod="post" class="btn btn-default" />

不确定这种方法有什么问题。

1 个答案:

答案 0 :(得分:1)

您正在为名为UserID的属性生成下拉列表,而不是AssignedTo(并更改@Html.BeginForm()与此无关)

提交表单时,AssignedTo没有名称/值对,因此设置为默认值(0属性为int

更改代码以生成下拉列表

@Html.DropDownListFor(m => m.AssignedTo, TempData["UserList"] as SelectList, new { @class = "control-label col-md-2" })