1

我有这个动作方法。它将返回一些 JSON。

public JsonResult Get()
{
        ...

        return new JsonResult { Data = data }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };  
}

然后,我认为有一个脚本标记指向 Get 操作方法。

 <script type="text/javascript" src="@Url.Content("~/resource/get")"></script>

问题是我无法访问 JS 代码中的 JSON 数据。似乎 JSON 需要以某种方式执行。有什么建议吗?

4

3 回答 3

2

您可以在 jQuery 中调用该操作,然后直接处理 Json:

$.ajax({
  dataType: "json",
  url: "/resource/get",
  success: function(data){
      var obj = JSON.parse(data);
  }
});

或更短的版本:

$.getJSON('/resource/get', function(data) { 
    var obj = data;
});
于 2013-05-01T16:03:01.310 回答
1

如果您希望 JSON 尽快可用,而无需额外请求,请将其包含在初始页面加载中:

<script type="text/javascript">
    var myJson = @Html.Action("Get");
</script>

现在您只需访问myJson脚本中的变量即可访问您的数据。

于 2013-05-01T16:25:51.713 回答
1

如果您希望在服务器上构建页面时将其转储到您的 HTML 中,您可以将其添加到您的视图模型中,然后直接在页面上呈现它。这是一个伪代码示例:

<script type="javascript">
     var obj= JSON.parse('@Model.PropertyContainingJson');
</script>
于 2013-05-01T16:27:44.757 回答