2011-11-09 47 views
2

我试图JsonResult传进我的jQuery的阿贾克斯,在我的JS:asp.net的MVC控制器动作和jQuery的AJAX问题

$.ajax({ 
     contentType: 'application/json, charset=utf-8', 
     type: "POST", 
     url: "/Controller/TestJson",  
     cache: false, 
     dataType: "json", 

     success: function (result) { 
      alert(result.length); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
      alert('error'); 
     } 

    }); 
在我的控制器

我:

public JsonResult TestJson() 
    { 
     List<SelectListItem> list = new List<SelectListItem>() { 
      new SelectListItem() { Value = "1", Text = "VA" }, 
      new SelectListItem() { Value = "2", Text = "MD" }, 
      new SelectListItem() { Value = "3", Text = "DC" } 
      }; 

     return this.Json(list); 
    } 

当我运行它,长度是3,但是如果我做了类似alert(result [0])的事情,我得到[Object object] ...所以它看起来像Json(list)不会对它进行语义化......

我在这里做错了什么?

回答

3

我用到的结果[0] .value的获取价值并导致[0]。文本来获取文本属性.SelectListItem.Value /文本或其他财产。希望它能帮助别人。

1

你应该尝试导致[0]

+0

等我检查并恢复,我误以为它返回SelectListItem数组,所以结果[0] .Valiue /文本应该工作 –