将表单提交给Controller时模型为空

时间:2016-10-10 16:22:35

标签: asp.net-mvc-5

当我调用html.action方法时,我得到一个空模型,这是我的视图

@model Models.Element.ElementEditModel
    @{
        Layout = null;
    }
     @using (Html.BeginForm("Save", "Element", FormMethod.Post, new { autocomplete = "off", onsubmit = "return false;" }))
{

        @using (Html.BeginForm("Save", "Element", FormMethod.Post, new { autocomplete = "off", onsubmit = "return false;" }))
        {
        if (Model != null)
    {
        @Html.HiddenFor(x => x.ID)
        @Html.HiddenFor(x => x.style)
        }
               <div>
                    @Html.Partial("Properties/_genre")
                    @Html.Action("Properties", "Option", new { ID = Model.ID })    
                </div>
     <a href="@Url.Action("Save", "Element")"> save</a>

如果我删除Html.Action它可以工作!

  [HttpPost]

    public ActionResult Save( Models.ElementEditModel.ElementEditModel model)
    {...}

1 个答案:

答案 0 :(得分:1)

  1. 您有两个开始表单。不要那样做。

  2. 您的视图模型@model Models.Element.ElementEditModel和操作模型Models.ElementEditModel.ElementEditModel model似乎不匹配。

  3. 您在锚标记中调用save,这将导致GET而不是POST。使用类型为submit的输入让表单知道发布数据

  4. <input id="SaveButton" value="Save" type="submit">