我有一個WebMethod,看起來像這樣被用來填充的jqGrid如何讓我的WebMethods序列ExpandoObject
[System.Web.Script.Services.ScriptService]
public class MyWebService: System.Web.Services.WebService
{
[WebMethod]
[Authorize(Roles = "Admin")]
public object GetPeople(bool _search, double nd, int rows, int page, string sidx, string sord)
{
var tbl = new DynamicModel("ConnStr", tableName: "Person", primaryKeyField: "ID");
var results = tbl.Paged(orderBy: sidx + " " + sord, currentPage: page, pageSize: rows);
return results;
}
}
「結果」與性質的項目,總頁數,總記錄一個System.Dynamic.ExpandoObject
的JSON我坐回從WebService看起來像這樣
{
"d": [{
"Key": "TotalRecords",
"Value": 1
}, {
"Key": "TotalPages",
"Value": 1
}, {
"Key": "Items",
"Value": [
[{
"Key": "Row",
"Value": 1
}, {
"Key": "ID",
"Value": 1
}, {
"Key": "Name",
"Value": "Test Template"
}]
]
}]
}
} // Don't know why firebug put this extra bracket
理想我寧願它回來沒有所有的鍵和值的業務,因爲它漲大不必要地使用json,並且不能很好地與jqGrid一起玩。
有沒有辦法改變ASP.NET處理ExpandoObject序列化的方式?
朋友推薦這種方法http://stackoverflow.com/questions/5156664/how-to-flatten-an-expandoobject-returned-via-jsonresult-in-asp -net-mvc但我不知道如何註冊JavaScriptConverter與我們的JavaScriptSerializer bmethod使用。 – 2012-02-21 23:23:05
該死的,我在這裏找到的答案在這裏http://msdn.microsoft.com/en-us/library/bb763183.aspx大約一半下來 – 2012-02-21 23:52:00
很高興知道你學到了新的東西:) – Jull 2012-02-22 00:03:33