2012-09-14 44 views
0

如何使用ajax返回IEnumerable的值。這裏是我的腳本:如何在MVC3中使用ajax返回IEnumerable值?

$.ajax({ 
     type: "get", url: "street", data: { a: value2 }, 
     success: function (data) { 

      alert(data); 

           } 

這裏是我的控制器方法:

[HttpGet] 
     public string street(string a) 
     { 

      EmlakServicesClient client = new EmlakServicesClient(); 
      client.ClientCredentials.UserName.UserName = "service_test"; 
      client.ClientCredentials.UserName.Password = ".."; 
      client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None; 
      Street[] list =client.GetStreet(Convert.ToInt32(a)); 

        return ("" + list.FirstOrDefault().StreetName); 


     } 

正如你可以在上面看到我得到的價值,但與第一個值,所以我怎樣才能從IEnumarable這些所有值?

+0

您可以使用'foreach'或逗號分隔列表'String.Join(「,」,list)'。 – CMircea

+0

那麼,如何在我的控制器中使用foreach,可以向我展示一個示例? – Teodoris

回答

3

你應該使用JSON:

return Json(list, JsonRequestBehavior.AllowGet); 

你需要改變你的操作方法返回ActionResult

0

返回集合爲JSON

public ActionResult GetsomeItems(int someId) 
{ 
    var someCollection=GetListOfItemsFromSomeWhere(someId) 
    return Json(someCollection,JsonRequestBehaviour.AllowGet); 
} 
0

我絆倒了這同時做如何歸還使用的ASP.NET Web API 2. JSON結果萬一別人谷歌搜索尋找相同的解決方案,這裏是爲我工作的解決方案:

// GET: api/Users 
public HttpResponseMessage Get() 
{ 
    var users = UserManager.Get(); // returns IEnumerable 
    return Request.CreateResponse(HttpStatusCode.OK, users); 
} 

您可以瞭解更多關於HttpResponseMessage here