Пожалуйста, смотрите ниже AJAX:JSON не анализируется в пользовательский объект
<script type="text/javascript" src="Javascript/json2.js"></script>
<script type="text/javascript" src="Javascript/jquery-1.11.1.min.js"></script>
<script type = "text/javascript">
function GetData() {
$.ajax({
type: "POST",
url: "JSONExample.aspx/GetPerson",
contentType: "application/json; charset=utf-8",
dataType: "text",
success: OnSuccess(),
//async: false,
failure: function (response) {
alert('there was an error counting possibles')
}
});
function OnSuccess() {
return function (response) {
alert(response);
window.location.href("JSONExample.aspx?id=" + response);
}
}
}
GetData()
</script>
и код на стороне сервера ниже:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
using Newtonsoft.Json;
namespace SerializeAndDeserializeJSON
{
//[Serializable]
public class Person
{
public String Name;
public int Age;
}
public partial class JSONExample : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if ((Request.QueryString["id"]== null)==false)
{
var json = Request.QueryString["id"];
var person = JsonConvert.DeserializeObject<Person>(json); //person is null
}
}
[System.Web.Services.WebMethod]
public static Person GetPerson()
{
Person p1 = new Person();
p1.Name = "Ian";
p1.Age=35;
return p1;
}
}
}
На странице загрузки значения объекта Person следующим после страницы нагрузка:
имя: нулевой Возраст: 0
название должно б e Ian и Age должны быть 35. Что я делаю неправильно?
Проверьте ваш отзыв null, change dataType to json –
Является ли объект Json недействительным внутри функции OnSuccess? –