如何在MVC3中使用ajax返回IEnumerable值?

时间:2012-09-14 13:04:45

标签: asp.net-mvc-3

如何使用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);


        }

正如你在顶部看到的那样,我获得了价值,但是使用First Value,我怎么能从IEnumarable获得所有这些值呢?

3 个答案:

答案 0 :(得分:3)

您应该使用JSON:

return Json(list, JsonRequestBehavior.AllowGet);

您需要更改操作方法以返回ActionResult

答案 1 :(得分:0)

将集合返回为JSON

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

答案 2 :(得分: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