Javascript反序列化返回的是类名而不是实际对象

Javascript反序列化返回的是类名而不是实际对象,javascript,jquery,ajax,asp.net-mvc-3,Javascript,Jquery,Ajax,Asp.net Mvc 3,因此,我在控制器中通过页面上的$.ajax调用运行GetServerUpdateProgress()。在调试过程中,我可以确认变量myobj被正确创建并填充了正确的数据 但是在$.ajax成功的时候,我并没有得到json格式的数据,而是得到 字符串“TrackerMVC.ClassLib.UpdateAJAXProgress”-对象类型 我在过去使用.svc webservice进行过此操作,并且使用完全相同的方法获取对象值时没有遇到任何问题 有什么想法吗?谢谢 方法: public Updat

因此,我在控制器中通过页面上的$.ajax调用运行GetServerUpdateProgress()。在调试过程中,我可以确认变量myobj被正确创建并填充了正确的数据

但是在$.ajax成功的时候,我并没有得到json格式的数据,而是得到 字符串“TrackerMVC.ClassLib.UpdateAJAXProgress”-对象类型

我在过去使用.svc webservice进行过此操作,并且使用完全相同的方法获取对象值时没有遇到任何问题

有什么想法吗?谢谢

方法:

public UpdateAJAXProgress GetServerUpdateProgress()
{
        string BASE_URL = "http://localhost:55094";
        string url = BASE_URL + "/Home/UpdateProgress";
        WebRequest wr = WebRequest.Create(url);
        wr.Credentials = CredentialCache.DefaultNetworkCredentials; // uses current windows user

        var myojb = new UpdateAJAXProgress();
        var response = (HttpWebResponse)wr.GetResponse();
        var reader = new StreamReader(response.GetResponseStream());
        JavaScriptSerializer js = new JavaScriptSerializer();
        var objText = reader.ReadToEnd();
        myojb = (UpdateAJAXProgress)js.Deserialize(objText, typeof(UpdateAJAXProgress));
        return myojb; // during debugging this object has the correct values in the correct format
}
类别:

public class UpdateAJAXProgress
{
    public int Completed { get; set; }
    public int Total { get; set; }
}
javascript:

$.ajax({
        type: "POST",
        async: false,
        url: '@(Url.Action("GetServerUpdateProgress","Charts"))',
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            console.log(data); // data being returned is: "TrackerMVC.ClassLib.UpdateAJAXProgress"
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.status);
            alert(XMLHttpRequest.responseText);
        }
});
你误用了MVC

您应该将函数声明为返回
ActionResult
,然后
返回Json(myobj)


如果您从MVC操作返回非
ActionResult
,MVC将通过调用
ToString()

将其转换为字符串,谢谢!我还在学习,但我很尴尬,我完全没有意识到这一点^_^