Мне было поручено преобразовать одностраничное веб-приложение ASP.NET MVC 3 в приложение ASP.NET 3.5 Web Forms из-за некоторой несовместимости с Sharepoint.Я не могу получить доступ к свойству объекта в json результате приложения веб-форм.Может кто-нибудь сказать мне, что я делаю не так?Кроме того, лучше ли использовать службу WCF или обычный веб-сервис при использовании веб-форм для возврата данных JSON?Кто-нибудь может дать мне несколько примеров?Лучше использовать встроенный сериализатор Javascript или библиотеку JSON.net?Вот мой код -
метод MVC -
public ActionResult LoadPerson()
{
var p = new Person;
p.Name = "Bob";
return Json(new { value = p}, JsonRequestBehavior.AllowGet); //what is the equivalent of this in webforms so I can access the properties directly?
}
Файл JavaScript MVC -
var person;
$.ajax({
url: 'Home/LoadPerson',
type: 'GET',
async: false,
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
person = result.value;
}
});
alert(person.Name); //works fine.
Код веб-форм -
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string LoadPerson()
{
var p = new Person();
p.Name = "Bob";
var serializer = new JavaScriptSerializer();
return serializer.Serialize(p);
}
JavaScript веб-форм -
var person;
$.ajax({
url: 'Default.aspx/LoadPerson',
type: 'POST',
async: false,
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
person = result.d;
}
});
alert(person.Name); //undefined. Why?