Javascript 在jQuery ajax发布期间,ASP.NET MVC3表单集合为0
我正在开发一个ASP.NET MVC3应用程序 我试图发布到一个方法,该方法使用;但是,每当服务器处理请求时,我的表单集合的密钥计数为0,因此没有填充我的视图模型,这是一个问题 我正在将ajax应用于我的表单提交,如下所示:Javascript 在jQuery ajax发布期间,ASP.NET MVC3表单集合为0,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我正在开发一个ASP.NET MVC3应用程序 我试图发布到一个方法,该方法使用;但是,每当服务器处理请求时,我的表单集合的密钥计数为0,因此没有填充我的视图模型,这是一个问题 我正在将ajax应用于我的表单提交,如下所示: $(document).on("submit", "form", function (event) { event.preventDefault(); var form = $(this); $.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>
我的表单是这样创建的:
$(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>
@使用Html.BeginForm(“GetContent”,“TheController”,FormMethod.Post,新的{.id=“GetContentForm”})
@Html.DropDownListFor(函数(模型)model.SelectedTypeID,新建SelectList(Html.NullListItemOptionList(model.TypeOptions.ToList,“请选择”),“ID”,“Name”,model.SelectedTypeID),新建为{.onchange=“$(this).parents('form').submit();“})
@
终端使用
我的控制器方法是:
<HttpPost()>
Function GetContent(ByVal collection As FormCollection) As PartialViewResult
Dim itemsVM As New ItemsViewModel
TryUpdateModel(itemsVM, collection)
Return PartialView("PartialItems", itemsVM)
End Function
函数GetContent(ByVal collection作为FormCollection)作为PartialViewResult
Dim itemsVM作为新的ItemsViewModel
TryUpdateModel(itemsVM,集合)
返回PartialView(“PartialItems”,itemsVM)
端函数
这几乎就像表单的序列化不起作用一样,但我不知道如何解决这个问题。我真的很想了解一下为什么这不起作用
谢谢。由于您正在发送表单参数,因此您使用的
contentType
不正确,这反过来会导致服务器无法接收您的数据,因为它需要html,并且没有接收任何数据。要解决这个问题,只需从$中删除contentType
选项。ajax
因为您发送表单参数,所以您使用的contentType
不正确,这反过来会导致服务器无法接收您的数据,因为它需要html,并且没有接收任何数据。要解决此问题,只需从$中删除contentType
选项。ajax
删除contentType,您不会向服务器发送html。我想向服务器发送内容。我想发送所选的TypeID。谢谢。我删除了contentType,它成功了…现在我有另一个问题,因为我仍然没有从服务器上得到任何东西…但至少我的表单集合中有东西。我建议将其转移到第二个问题,更多地关注ASP方面的内容。我发现了这一点。是我在试图调试设置内容类型的问题时做的事情。请将您的答案发布为答案,以便我可以将其标记为:)删除contentType,您没有向服务器发送html。我想向服务器发送内容。我想发送所选的TypeID。谢谢。我删除了contentType,它成功了…现在我有另一个问题,因为我仍然没有从服务器上得到任何东西…但至少我的表单集合中有东西。我建议将其转移到第二个问题,更多地关注ASP方面的内容。我发现了这一点。是我在试图调试设置内容类型的问题时做的事情。你能把你的答案贴出来吗?这样我就可以这样标记:)