2017-08-02 52 views
1

我的操作方法是,在视图部分我使用JSON来从其他行动的数据在我的控制器, 它去当我直接调用它的成功方法, (放routConfig行动eqaul这个动作)当我从其他操作或视图调用Json时,Json会出错,但直接运行时它会成功吗?

但是当我从链接调用行动它会出错, 我不知道为什么?!

控制器:

[HttpGet] 
    public ActionResult PieRenderer() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public JsonResult GetPieRenderer() 
    { 
     var DbResult = from d in db.Rep_TaskTypeQueuChart(0, 1) 
         select new 
         { 
          d.TaskTypeName, 
          d.WorkCount 
         }; 
     //return Json(DbResult, JsonRequestBehavior.AllowGet); 
     return Json(DbResult); 
    } 

视图:

<!-- CSS --> 
<link href="~/Scripts/jqPlot/jquery.jqplot.min.css" rel="stylesheet" /> 
<!-- Scripts JS --> 

<script src="~/Scripts/jquery-3.1.1.min.js"></script> 
<script src="~/Scripts/jqPlot/jquery.jqplot.min.js"></script> 
<script src="~/Scripts/jqPlot/plugins/jqplot.pieRenderer.js"></script> 

<script> 
     $.jqplot('chartdiv', [[[1, 2], [3, 5.12], [5, 13.1], [7, 33.6], [9, 85.9], [11, 219.9]]]); 

     $(document).ready(function() { 

      // $.jqplot('chartdiv3', [[[1, 2], [3, 5.12], [5, 13.1], [7, 33.6], [9, 85.9], [11, 219.9]]]);    
      //$.ajax(alert('Hiiiiiiiii'));    //alert('111') 
      $.ajax({ 
       type: "POST", 
       url: "Cartable/GetPieRenderer", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: OnSuccess, 
       error: OnError 
      }); 

      function OnSuccess(response) { 

       var aData = response; 
       var dataArray = []; 

       $.each(aData, function (i, item) { 
        dataArray.push([item.TaskTypeName, item.WorkCount]); 
        alert(item.TaskTypeName); 
       }); 



       var plot1 = jQuery.jqplot('chartdiv3', [dataArray], 
        { 
         seriesDefaults: { 
          // Make this a pie chart. 
          renderer: jQuery.jqplot.PieRenderer, 
          rendererOptions: { 
           sliceMargin: 4, 
           // Put data labels on the pie slices. 

           showDataLabels: true 
          } 
         }, 
         legend: { show: true, location: 'e' } 
        } 
       ); 

      } 
      function OnError(response) { 
       alert("Error !"); 
       alert(response.toString()); 
      } 


     }); 

    </script> 
</div> 

如果我更改RoutConfig action =“PieRenderer”,它会显示结果。 但如果我经营的主要仪表板视图,并有我有一个actinlink或A HREF到PieRenderer方法,它转到错误方法()...

回答

0

我找到了答案,这个问题,因为这部分的: 网址: “Cartable/GetPieRenderer”

它应该是这样的变化: URL: “/ Cartable/GetPieRenderer”,

相关问题