[英]Asp.Net MVC 5 Jquery validation not working on ajax post with submit event, showing as valid form
[英]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.