从局部视图向ActionResult发布数据模型

时间:2013-10-28 18:19:29

标签: jquery asp.net ajax asp.net-mvc razor

我正在尝试从局部视图向MVC3控制器提交表单数据。由于某种原因,从未填充提交的数据模型。

这是处理表单提交的jquery:

        $(document).on('submit', '#FormNewCall', function (e) {
            e.preventDefault();
            $.ajax(
            {
                async: true,
                type: "POST",
                url: $(this).attr('action'),
                data: $(this).serialize(),
                success: function (data) {
                    $("#callTable").replaceWith(data);
                },
                error: function () {
                    alert("Error submitting call");
                },
                complete: function () {
                    CloseNewCall();
                }
            })
        });

我使用“on”(第一行)的原因是因为只有在需要时才通过jquery / ajax添加包含“FormNewCall”的局部视图。

控制器中的ActionResult如下所示:

    // POST: /Default/SubmitCall/
    [Authorize]
    [HttpPost]
    public ActionResult SubmitCall(ServiceCallModel SubmittedModel)
    {
        if (Request.IsAjaxRequest())
        {
              // Do things before returning a new view
        }
        else
        {
            return View(); 
        }
    }

实际表单是部分视图,包含许多这样的内容:

    <div class="rowContainer">
        <tr class="SmallRow">
            <td>@Html.Label("Brief")
            </td>
            <td>@Html.TextBoxFor(m => m.NewCallModel.description)
            </td>
        </tr>
    </div>

当我在控制器中设置断点时,参数“SubmittedModel”存在但具有所有空值。

看起来好像属性“Request.Form”是一个包含所提交表单中所有预期数据的json字符串。

我有什么遗失的吗?

0 个答案:

没有答案