我有简单的JavaScript代码,我希望从控制器中获取一个对象并在脚本中解析它,但在脚本中,我无法访问该对象的任何属性。
我的对象(在控制器中):
public class userData
{
public string firstName { get; set; }
public string lastName { get; set; }
public string state { get; set; }
public bool success { get; set; }
}
脚本:
function load()
{
var sender = {
userNo : $("#userNo").val(),
}
$.ajax({
type : "POST",
url : "testGetUser",
data : sender,
success:function(data)
{
if(1)
{
$("#section #result0").html(data.firstName);
$("#section #result1").html(data.lastName);
$("#section #result2").html(data.state);
$("#section").slideDown().delay(1000).slideUp();
}
}
});
}
控制器:
[HttpPost]
public userData testGetUser(long userNo)
{
userData result = new userData();
result.firstName = Session["firstName"].ToString();
result.lastName = Session["lastName"].ToString();
result.state = Session["country"].ToString();
result.success = true;
return result;
}
答案 0 :(得分:5)
在控制器中,使用:
[HttpPost]
public JsonResult testGetUser(long userNo)
{
userData result = new userData();
result.firstName = Session["firstName"].ToString();
result.lastName = Session["lastName"].ToString();
result.state = Session["country"].ToString();
result.success = true;
return Json(result);
}
您似乎没有使用变量userNo
,因此最好使用这样的GET请求:
public JsonResult testGetUser(/*remove parameter*/)
{
userData result = new userData();
result.firstName = Session["firstName"].ToString();
result.lastName = Session["lastName"].ToString();
result.state = Session["country"].ToString();
result.success = true;
return Json(result, JsonRequestBehavior.AllowGet);
}
JavaScript现在想成为这样:
function load()
{
$.ajax({
type : "GET",
url : "testGetUser",
success:function(data) {
$("#section #result0").html(data.firstName);
$("#section #result1").html(data.lastName);
$("#section #result2").html(data.state);
$("#section").slideDown().delay(1000).slideUp();
}
});
}