在Asp.net控制器中获取Json对象,而无需创建类
本文关键字:创建 对象 Json net Asp 控制器 获取 | 更新日期: 2023-09-27 18:24:42
我可以在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#类。
有办法吗?
变量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
的值正确绑定。