我正在开发一个 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
好像表单的序列化不起作用,但我不知道如何解决这个问题。我真的很感激对为什么这不起作用的一些见解。
谢谢你。