Asp.net mvc Json不是';t返回可作为数组访问的结果
从控制器方法读取Json结果时遇到问题 我的控制器中有此方法: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("")
[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 + ')');