ASP.NET MVC3 表单集合在 jQuery ajax 发布期间为 0
ASP.NET MVC3 form collection is 0 during jQuery ajax post
我正在开发一个 ASP.NET MVC3应用程序。
我正在尝试 POST 到一个使用 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 并且没有收到任何数据。要解决此问题,只需从中删除contentType
选项$.ajax
。
相关文章:
- 如何在AJAX调用期间附加DDL
- 如何在ajax请求期间显示进度条(jquery.php)
- ajax代码期间使用Javascript
- 在 ajax 调用期间刷新页面正在破坏 php 会话
- WebSocket onMessage 在 AJAX 请求期间未触发
- Jquery在ajax Post期间正在更改数据.为什么
- UI 在 AJAX 调用期间无响应
- ASP.NET MVC3 表单集合在 jQuery ajax 发布期间为 0
- 在 ajax 调用期间回发
- 在 ajax 调用期间,轨道中的渲染或redirect_to问题
- Ajax 覆盖在 ajax 请求期间未显示
- ajax调用期间的重定向
- 在AJAX调用期间替换表单时,警告用户未保存的表单更改
- ajax调用期间的KnockoutJS竞赛条件
- 在Ajax调用期间更新jQuery项
- 同步AJAX调用期间更新GUI
- 在ajax调用期间,Angular.js智能表加载符号
- 如何在ajax调用期间保持在这个上下文中(jquery + coffescript)
- 在ajax调用期间将POST转换为GET
- 使用jQuery在AJAX请求期间显示繁忙加载指示器