Asp.net

asp.net web表單json返回結果

  • March 19, 2011

我使用 asp.net 和 web 表單。在我的項目中,我有 asmx Web 服務

[WebMethod]
   public string GetSomething()
   {
     // avoid circual reference(parent child)
     List<RetUsers> res = repo.GetAllUser().Select(c => new RetUsers {User_ID = c.User_ID,User_Name = c.User_Name,Date_Expire = c.Date_Expire }).ToList();
     string res1 = res.ToJson();
     // extension methods
     return res.ToJson();
   }

結果就是這種格式。

[
   {"User_ID":1,"User_Name":"Test 1","Date_Expire":null},
   {"User_ID":2,"User_Name":"Test 2","Date_Expire":null}
]

我怎樣才能在 $.ajax 中附加標記這個結果來獲得這個輸出:

1 - 測試 1、2 - 測試 2。

而是返回列表,並使用 [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 屬性 - 它會自動創建 JSON 對像作為返回:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public List<RetUsers> GetSomething()
{
 // avoid circual reference(parent child)
 List<RetUsers> res = repo.GetAllUser().Select(c => new RetUsers {User_ID = c.User_ID,User_Name = c.User_Name,Date_Expire = c.Date_Expire }).ToList();

 return res;
}

在 JS 方面:

$.ajax(
{
   type: "POST",
async: true,
url: YourMethodUrl,
data: {some data},
contentType: "application/json; charset=utf-8",
dataType: "json",
   success: function(msg)
   {
       var resultAsJson = msg.d // your return result is JS array
       // Now you can loop over the array to get each object
       for(var i in resultAsJson)
       {
           var user = resultAsJson[i]
           var user_name = user.User_Name
           // Here you append that value to your label
       }
   }
})

引用自:https://stackoverflow.com/questions/5364343