MVC部分视图不提交隐藏字段值

时间:2014-05-20 09:21:57

标签: asp.net-mvc asp.net-mvc-5 hidden-field asp.net-mvc-partialview

我正在开发一个MVC 5 Web应用程序。其中一个视图引用了部分视图,如此

<div class="row">
    <div class="panel-body" id="TimeEntryPartial">
       @Html.Partial("_TimeEntryPartial", Model.TimeEntry)
    </div>
</div>

然后,“局部视图”显示一个包含多个字段的表单,其中一个字段是隐藏字段,如此

@using (Html.BeginForm("AddTimeEntry", "TimeEntry", FormMethod.Post, new { name = "frm", id = "frm" }))
{

@Html.HiddenFor(m => m.SelectedUserID)

<div id="AddButtons">
    <div class="col-sm-12">
        <input type="submit" id="btnAdd" name="btnAdd" class="btn btn-warning btn-block" value="Add Entry">
    </div>
</div>

}

当用户提交表单时,在Controller中调用HttpPost Action,就像这样

[HttpPost]
public ActionResult AddTimeEntry(TimeEntryViewModel model)
{
    if(ModelState.IsValid)
    {
        //code here
        int userID = model.SelectedUserID;
    }
}

除了SelectedUserID之外,表单中的所有值都成功传递到ViewModel中。这总是0。

我认为这可能与隐藏的字段有关,因此我将其更改为文本框,我可以看到其中的值。但是,再次调用HttpPost Action时,属性SelectedUserID的值未包含在ViewModel中。

有人对如何解决此问题有任何建议吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

检查你的poco。如果字段未正确设置为属性,则自动布线将忽略它。

答案 1 :(得分:0)

我遇到了同样的问题。我已经通过摆脱局部视图来解决它。

一切正常。

相关问题