繁体   English   中英

jQuery ajax发布期间ASP.NET MVC3表单集合为0

[英]ASP.NET MVC3 form collection is 0 during jQuery ajax post

我正在研究ASP.NET MVC3应用程序。

我试图发布到使用jQuery.ajax api返回一堆数据的方法; 但是,每当服务器处理请求时,我的表单集合的键计数为0,因此不会填充我的视图模型,这是一个问题。

我正在将ajax应用于表单提交,如下所示:

 $(document).on("submit", "form", function (event) {
    event.preventDefault();
    var form = $(this);
    $.ajax({
        type: "POST",
        url: this.action,
        data: form.serialize(),
        contentType: "application/html; charset=utf-8",
        dataType: "html",
        success: function (result) {
            var d = new Date();
            var str = d.toString() + result;
            $('#dynamicContent').html(str);
        }
    });

});

我的表单是这样创建的:

  @Using Html.BeginForm("GetContent", "TheController", FormMethod.Post, New With {.id = "GetContentForm"})
            @Html.DropDownListFor(Function(model) model.SelectedTypeID, New SelectList(Html.NullListItemOptionList(Model.TypeOptions.ToList, "Please Choose"), "ID", "Name", Model.SelectedTypeID), New With {.onchange = " $(this).parents('form').submit();"})
            @<input type="submit" value="Refresh" style="cursor: pointer" />
  End Using
  <div id="dynamicContent">
  </div>

我的控制器方法是:

 <HttpPost()>
    Function GetContent(ByVal collection As FormCollection) As PartialViewResult

        Dim itemsVM As New ItemsViewModel
        TryUpdateModel(itemsVM, collection)
        Return PartialView("PartialItems", itemsVM)
    End Function

好像表格的序列化无法正常工作,但我不知道如何解决。 我真的很感谢能深入了解为什么它不起作用的一些见解。

谢谢。

由于您正在发送表单参数,因此您使用的contentType不正确,这反过来导致服务器无法接收您的数据,因为它需要html并且未接收到任何数据。 要解决此问题,只需从$.ajax删除contentType选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM