我从控制器方法中读取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);
}
这个jquery ajax帖子正在调用它:
$.post("/Profile/GetCurrent", function(profile) { profileCompleteOpen(profile); }, "json");
并在帖子的回调中调用了javascript函数:
function profileCompleteOpen(profile) {
alert(profile);
alert(profile[0]);
}
第一个警报的结果显示如下数组:
[ “ - 1”, “测试”, “”]
但是第二个警报的结果显示了这个:
[
而不是
-1
我在这里做错了什么......我把它与其他时间进行了比较我正在这样做,而且看起来完全相同。为什么不识别它是一个阵列?
谢谢,
马特
答案 0 :(得分:1)
尝试使用eval()将配置文件中的json数据转换为适当的对象。
示例:
var profileObject = eval('(' + profile + ')');
答案 1 :(得分:0)
我要么返回一个完全限定的对象,然后使用它的属性;
class MyObj
{
public string name{get;set;}
}
填充对象并将其作为json对象返回。那么你的jquery代码可以像任何其他对象一样访问。
另一种方式可能是return PartialView("MyView", model);
这会将部分视图作为html返回到您的页面,然后您可以将其附加到您的html。
答案 2 :(得分:0)
我认为profile
的类型是字符串而不是数组。为什么?检查$.post
方法参数。也许问题就在那里。
$.post("url", null, function(profile) { ... }, "json");