我正在尝试关注单页应用示例here
应该解析JSON的地方我得到错误: SyntaxError:JSON.parse:如果我遗漏dataType的意外字符:'json' 如果我输入dataTyp:'json',那么没有错误,但是没有返回json而我的模板没有填写。
我输入了一个gridview,看看我的列表是否正在返回......而且确实如此。
我已经加载了jquery,sammy.js,json2.js和sammy.template.js ......所有最新和最好的。
我知道这是差异网站上的示例应用程序,我很感谢你们这些人的时间。我只想跟随并理解SPA应用程序是令人兴奋的。
的javascript:
$(document).ready(function () {
//alert('Jquery has loaded');
var loadOptions = { type: 'get', dataType: 'json', cache: false };
var app = $.sammy('#sammyDiv', function () {
this.use('Template');
this.use('Session');
this.around(function (callback) {
var context = this;
this.load('Default.aspx/GetEmployees', { cache: false }) // loadOptions ) // { dataType: 'json', cache: false })
.then(function (items) {
context.items = JSON.parse(items).d; // browser parser... I believe it fails right here
//context.items = $.parseJSON(items).d; //jQuery handling
//alert(context.items);
//context.items = JSON.stringify(items);
})
.then(callback);
});
cs code:
static List<Employees> emps;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
emps = new List<Employees>();
Employees emp = new Employees("Kedar", "Kulkarni", "0001", "A");
Employees emp1 = new Employees("ABC", "XYZ", "21211", "B");
emps.Add(emp);
emps.Add(emp1);
}
/* using foreach method
foreach (Person person in persons)
{
Response.Write(String.Format("Name : {0} Age : {1} Address : {2} Job : {3}", person.Name, person.Age, person.Address, person.Job));
Response.Write("</br>");
}
*/
this.GridView1.DataSource = emps; //for testing to see if my list gets returned
this.GridView1.DataBind();
}
[WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public static List<Employees> GetEmployees()
{
return emps;
}
答案 0 :(得分:0)
终于找到了答案:
我拿出了dataType:'json'并替换为下面的内容。一切都很好。
var loadOptions = {type:'get',cache:false,contentType:“application / json; charset = utf-8”};