2

我有简单的 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;
}
4

1 回答 1

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();
        }
    });
}
于 2013-07-15T11:34:32.137 回答