我试图通过AJAX将JSON发布到mvc控制器。我使用此代码,但它没有发布。
$(document).ready(function(){
$(".btn-success").click(function(e){
var urData = { City: 'Moscow', Age: 25 };
$.ajax({
url: "/Category/Create/",
type: "POST",
dataType: "json",
traditional: true,
contentType : "application/json",
data: urData,
success: function(maindta) {
alert(maindta);
},
error: function(jqXHR, textStatus){
}
});
e.preventDefault(); //STOP default action
});
});
这是控制器动作
[HttpPost]
public virtual JsonResult Create(List<object> urData){
}
答案 0 :(得分:0)
您回发具有2个属性的对象,因此您需要具有这2个属性的模型
public class MyModel
{
public string City { get; set; }
public int Age { get; set; }
}
并且该方法需要更改为
public JsonResult Create(MyModel model)
{
.... // model will be populated with the values you sent
return Json(...);`
}
您需要从ajax方法中删除以下选项
contentType : "application/json",
traditional: true,
或者,你的方法可以是
public JsonResult Create(string city, int age)
但是你失去了模型验证的好处
附注:始终使用Url.Action()
方法确保正确生成网址
url: '@Url.Action("Create", "Category")',