我在 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/