从Partial View(ASP.NET MVC)获取JSON的内容

时间:2014-05-08 04:35:05

标签: asp.net-mvc json

我有一个Controller来返回JSON

    public ActionResult Project()
    {
        var q = from p in db.projects
                select new { p.name_project, p.contract_value };

        return Json(q.ToList(), JsonRequestBehavior.AllowGet);
    }

我创建了一个部分视图名称“Project.cshtml”来获取JSON并打印结果

<script>
    $.getJSON('/Chart/Project', function (data) {
        var items = [];
        $.each(data, function (key, val) {
            items.push('<li>' + key + ': ' + val.Title + ' (' + val.Count + ')</li>');
        });

        $('<ul />', {
            html: items.join('')
        }).appendTo('body');
    })
</script>

我在Index.cshtml中通过HTMLHepler Html.Partial(“Project”)调用Partial View但是它返回了javascript代码,我想在代码完成后获取内容!

2 个答案:

答案 0 :(得分:0)

您需要解析getJson方法中的json内容,如下所示:

var result = jQuery.parseJSON(data);

然后在$.each函数中使用此结果。

Return Json content

答案 1 :(得分:0)

在呈现局部视图时,您的$ .getJson()调用不会被执行。您需要将它包装在$ .ready()函数(如下所示)或javascript自执行函数

<script>
  $(function(){
    $.getJSON('/Chart/Project', function (data) {
      var items = [];
      $.each(data, function (key, val) {
          items.push('<li>' + key + ': ' + val.Title + ' (' + val.Count + ')</li>');
      });

      $('<ul />', {
          html: items.join('')
      }).appendTo('body');
    })
  });
</script>