asp.net-mvc - 使用 jQuery POST 和 ASP.NET MVC 时 Controller 参数为 NULL

标签 asp.net-mvc jquery

我在 Controller 中处理 jQuery GET 请求没有问题,但是我无法获取任何表单数据进行 POST。客户端片段

$.post(url,{name:"John"},function(result){ 
    //process result
});

与 Controller 结合,

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Save(string name)
{
    return Json("Success!");
}
在操作方法内部检查时,

将导致 name 参数为 NULL 值,而我希望 name 映射到方法参数。此外,在此上下文中的所有其他对象(Request.Form)等似乎都是 NULL。我可以使用 $.get 来完成此操作,但我认为我应该使用 POST 执行任何具有副作用的操作。我正在使用 ASP.NET MVC 1.0、jQuery 1.2.6 和 Internet Explorer 7。

谢谢!

更新:请参阅下面我的回答并表示歉意

最佳答案

抱歉,我在页面中有一个 $.ajaxSetup 条目,它将默认的 contentType 覆盖为 application/json。

当使用默认的 contentType 时,如下所示:

$.ajax({ url,
         type: "POST",
         contentType: "application/x-www-form-urlencoded",
         success: function(result) { alert(result); },
         data: { name: "John" }
        });

它之所以有效,是因为 processData 默认为 true,这意味着带有 JSON 对象的数据条目将被解析为字符串(data: "name=John"也有效)。

抱歉浪费了您的时间:),感谢 Mark 关于传递 JSON 对象的建议,接下来我会这样做,因为它看起来非常酷。

关于asp.net-mvc - 使用 jQuery POST 和 ASP.NET MVC 时 Controller 参数为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848463/

相关文章:

html - 为什么我的页脚不在页面底部?

c# - 当同时在类和方法中应用属性时,如何强制使用方法属性?

c# - 在 Entity Framework 中使用事务或锁定来确保正确操作

jQuery - 获取高度并重新使用它

javascript - 如何使用 jquery 生成和附加一个随机字符串

javascript - 如何修改指令中 ng-repeat 创建的每个元素的单独范围?

javascript - 在 Vue Js 中的表格中创建奇数和偶数单元格时出现问题

asp.net-mvc - 如何持久化传递给局部 View 的数据模型?

javascript - 使用 jQuery 单击时显示 div

javascript - 如何使用 JQuery 高效地 append 内容