我有这个行动方法。它将返回一些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需要以某种方式执行。有什么建议吗?
答案 0 :(得分: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;
});
答案 1 :(得分:1)
如果您希望尽快提供JSON,而无需额外请求,请将其包含在初始页面加载中:
<script type="text/javascript">
var myJson = @Html.Action("Get");
</script>
现在,您只需访问脚本中的myJson
变量即可访问您的数据。
答案 2 :(得分:1)
如果您希望在服务器上构建页面时将其转储到HTML中,您可以将其添加到视图模型中,然后直接在页面上呈现它。这是一个伪代码示例:
<script type="javascript">
var obj= JSON.parse('@Model.PropertyContainingJson');
</script>