Asp.net mvc Json不是';t返回可作为数组访问的结果

Asp.net mvc Json不是';t返回可作为数组访问的结果,asp.net-mvc,ajax,json,post,controller,Asp.net Mvc,Ajax,Json,Post,Controller,从控制器方法读取Json结果时遇到问题 我的控制器中有此方法: [AcceptVerbs(HttpVerbs.Post)] public JsonResult GetCurrent() { IList<string> profile = new List<string>(); profile.Add("-1"); profile.Add("Test"); profile.Add("")

从控制器方法读取Json结果时遇到问题

我的控制器中有此方法:

    [AcceptVerbs(HttpVerbs.Post)]
    public JsonResult GetCurrent()
    {
        IList<string> profile = new List<string>();
        profile.Add("-1");
        profile.Add("Test");
        profile.Add("");

        return this.Json(profile);
    }
以及在post回调中调用的javascript函数:

function profileCompleteOpen(profile) {
   alert(profile);
   alert(profile[0]);
}
第一个警报的结果显示如下阵列:

[“-1”、“测试”、“测试”]

但第二次警报的结果显示:

[

而不是

-一,

我做错了什么…我把它和我做这件事的其他一次做了比较,它似乎是完全一样的。为什么它不能识别它是一个数组

谢谢,

马特

嗯,我会做你想做的事情,稍微有点不同

我要么返回一个完全限定的对象,然后使用它的属性

class MyObj
{
  public string name{get;set;}
}
填充该对象并将其作为json对象返回。然后,您就知道jquery代码可以像任何其他对象一样进行访问

另一种方法可能是执行
返回PartialView(“MyView”,model);


这会将部分视图作为html返回到您的页面,然后您可以将其附加到html中。

我认为
配置文件的类型是字符串而不是数组。为什么?请检查
$。post
方法参数。可能存在问题

$.post("url", null, function(profile) { ... }, "json");

尝试使用eval()将概要文件中的json数据转换为适当的对象

例如:

var profileObject = eval('(' + profile + ')');
var profileObject = eval('(' + profile + ')');