jquery post content of ajax form



我有一个ajax形式如下:

@using (Ajax.BeginForm("Action", "Ctrler", null, new AjaxOptions { UpdateTargetId = "divSendML" }, new { id = "frmSendML" }))
{
    <div id="divSendML">
    @Html.EditorFor(x => x.SomeProperties)
    ...
    <div id="divPreview"></div>
    </div>
}

然后我调用一个jquery帖子来更新标签divPreiview的内容,我想发布这个ajax表单的内容:

function PreViewGenerateHtml() {
    var form = $("#frmSendML");
    $.post("/Ctrler/Action",
            form.serializeArray(),
            function (data) {
                $("#divPreview").html(data);
            });
}
[HttpPost]
public ActionResult Action(ActionModel model)
{
}

在服务器端,为什么映射的模型对某些属性没有价值。

不清楚你为什么要写这个PreViewGenerateHtml javascript函数。当您使用Ajax.BeginForm并包含jquery不显眼的脚本时,它将自动AJAX化生成的表单,当您单击提交按钮时,它会自动将其异步发送到服务器。

另一方面,如果要手动 AJAXify 窗体,则应使用普通Html.BeginForm而不是 Ajax.BeginForm,然后将form.serialize()而不是form.serializeArray()传递给 $.post 方法。

目标控制器操作将接收与普通 HTML 表单完全相同的 POST 数据。因此,如果您希望默认模型绑定器绑定模型,则必须正确命名输入字段名称。下面是一篇说明绑定到集合的预期格式的文章。

如果您有任何疑问,请使用javascript调试工具(例如FireBug或Chrome开发人员工具栏)来检查与请求一起发送的确切数据负载。

相关内容

  • 没有找到相关文章

最新更新