Jquery 序列化 :尝试在不提交表单的情况下将表单状态传递给 ASP.NET MVC 控制器
Jquery serialize : trying to pass a form status to an ASP.NET MVC controller without submitting the form
正在开发一个 ASP.NET 的MVC应用程序。表单具有多个提交表单的按钮。其中一个按钮需要将窗体的控件状态发送到控制器,而无需提交窗体。我计划使用 Ajax 和 $('#FormID').serialize();
我是这样写的:
function rechercher() {
var formStatus = $('#FormID').serialize();
var url = '@Url.Action("Search", "ImproItemForm"); //?'+ formStatus;
// alert('formStatus: ' + formStatus); //works fine
alert('url: ' + url);
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data:/* { improItem: formStatus },*/ formStatus ,
contentType: "application/json; charset=utf-8",
success: function (result) {
alert("success" + result);
},
error: function (result) {
alert("failure" + result);
}
});
}
我的控制器操作如下:
public ActionResult Search(FormCollection improItem)
{
}
如果我以这种方式调用 ajax,它永远不会到达控制器(从而触发错误函数。
如果我评论这一行:
data: formStatus ,
然后它确实调用了控制器方法,但 FormCollection improItem 参数当然没有值。所以我想我没有将数据正确传递给 Ajax,但我无法对其进行排序。
提前感谢。
请确保指定正确的内容类型。现在您似乎已经指定了application/json; charset=utf-8
但显然您没有发送任何 JSON,而是application/x-www-form-urlencoded
这就是 .serialize()
方法格式化表单值的方式。所以只需摆脱这一行:
contentType: "application/json; charset=utf-8",
通常,当您不确定要发送或接收的内容而不是像您那样尝试显式指定它时,您最好不要指定任何内容并让jQuery弄清楚。当然,dataType: 'json',
财产也是如此。如果控制器操作未返回 JSON,这将导致错误。另一方面,如果您没有指定预期的返回类型,那么 jQuery 将只使用服务器返回的 Content-Type
响应标头,它会弄清楚。
所以底线:把它留给框架弄清楚,除非你确切地知道你在做什么。
啊,在我忘记之前,请替换这个:
public ActionResult Search(FormCollection improItem)
跟:
public ActionResult Search(MyViewModel improItem)
相关文章:
- 在检查单选按钮检查状态后启用/禁用表单元素
- 是否可以在没有视图状态和回发的情况下使用asp.net web表单
- 使用Angular.js验证表单输入的原始状态
- Javascript:在表单中输入数据时,提交按钮不处于活动状态
- 针对某个状态禁用整个表单元素.反应
- 状态未立即更新时的 ReactJS 表单验证
- 从 JavaScript 检索表单提交的状态
- 如何使用 ExtJS6 cookie 提供程序和状态管理登录表单.管理器 + OL3 用于网络制图应用程序
- 多个进度状态 + Ajax 表单插件
- jQuery:从参数字符串设置表单状态
- 使用 React 创建的表单不会更新支持状态对象
- 检查是否有任何输入聚焦或处于活动状态,而不是在表单中
- 如何使用 Reactjs 用组件的状态填充模态表单
- 使用表单的当前状态序列化和反序列化表单
- Jquery 序列化 :尝试在不提交表单的情况下将表单状态传递给 ASP.NET MVC 控制器
- 仅在提交时使用 javascript 保存表单状态
- 在React中更新表单状态的正确方法
- Redux-Form和React-RTE - Save RTE editorValue到表单状态
- Redux:维护表单状态的正确做法是什么?
- React动态表单状态处理