我可以在asp.net mvc控制器中检索json对象吗?
这是我的ajax请求
// get form values
var nameValue = $("#name").val();
var ageValue = $("#age").val();
// json object
var person = {
name: nameValue,
age: ageValue
};
$.ajax({
url: '/Home/GetData',
type: 'POST',
data:{userObj: person},
success: function (data, textStatus) {
alert(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Erro :" + XMLHttpRequest.responseText + "| " + textStatus + "| " + errorThrown);
}
});
这是我的asp.net MVC控制器方法
[HttpPost]
public String GetData(dynamic userObj)
{
dynamic person = System.Web.Helpers.Json.Decode(userObj);
return userObj.name; // It didn't work
}
我想在我的控制器中检索这个对象,并将其用作userObj.name,userObj.age,就像C#中的json对象一样,不需要为此创建一个具有相同参数的C#类。
有什么办法吗?
答案 0 :(得分:1)
您的变量person
已经是您需要发送给控制器的对象,因此您应该使用ajax函数
$.ajax({
url: '@Url.Action("GetData", "Home")', // don't hard code your url's
type: 'POST',
data: person, // change this
success: function (data, textStatus) {
alert(data);
},
然后你的控制器方法应该是
[HttpPost]
public String GetData(Person userObj)
其中Person
是
public class Person
{
public string Name { get; set; }
pubic int Age { get; set; }
}
发布数据时,userObj
的值将与nameValue
和ageValue
的值正确绑定。