Итак, я запускаю GetServerUpdateProgress () в контроллере из вызова $ .ajax на моей странице.Во время отладки я могу подтвердить, что переменная: myobj создается правильно и заполняется правильными данными.
Но при успехе $ .ajax я не получаю данные в формате json, вместо этого я 'получаю строку «TrackerMVC.ClassLib.UpdateAJAXProgress» - тип объектов.
В прошлом я делал это с помощью веб-службы .svc, и у меня не было проблем с получением значений объектов с использованием этого точноготот же метод.
Есть идеи?Спасибо!
метод:
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);
}
});