Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我从其他操作或视图调用Json时,它会出错,但直接运行时成功了?_Json_Asp.net Mvc_Jqplot - Fatal编程技术网

当我从其他操作或视图调用Json时,它会出错,但直接运行时成功了?

当我从其他操作或视图调用Json时,它会出错,但直接运行时成功了?,json,asp.net-mvc,jqplot,Json,Asp.net Mvc,Jqplot,我有一个动作方法,在视图部分,我使用Json从控制器中的其他动作获取数据, 当我直接调用它时,它将进入成功方法, (将routConfig操作eqaul放入此操作) 但当我从链接调用操作时,它会出错, 我不知道为什么 控制器: [HttpGet] public ActionResult PieRenderer() { return View(); } [HttpPost] public JsonResult GetPieRenderer(

我有一个动作方法,在视图部分,我使用Json从控制器中的其他动作获取数据, 当我直接调用它时,它将进入成功方法, (将routConfig操作eqaul放入此操作)

但当我从链接调用操作时,它会出错, 我不知道为什么

控制器:

[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);
    }
视图:



$.jqplot('chartdiv',[[1,2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11219.9]];
$(文档).ready(函数(){
//$.jqplot('chartdiv3',[[1,2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11219.9]];
//$.ajax(警报('hiiii');//警报('111'))
$.ajax({
类型:“POST”,
url:“Cartable/GetPieRenderer”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:一旦成功,
错误:OnError
});
函数OnSuccess(响应){
var aData=响应;
var dataArray=[];
$。每个(数据、功能(i、项目){
push([item.TaskTypeName,item.WorkCount]);
警报(item.TaskTypeName);
});
var plot1=jQuery.jqplot('chartdiv3',[dataArray],
{
系列默认值:{
//做一个饼图。
渲染器:jQuery.jqplot.pierender,
渲染器选项:{
利润率:4,
//在饼图切片上放置数据标签。
showDataLabels:true
}
},
图例:{show:true,位置:'e'}
}
);
}
函数OnError(响应){
警报(“错误!”);
警报(response.toString());
}
});

如果我更改RoutConfig action=“PieRenderer”,它将显示结果。
但是如果我运行主仪表板视图,在那里我有一个actinlink或a href to PieRenderer方法,它会转到error method()。

我找到了答案,问题是因为这一部分: url:“可移动/GetPieRenderer”

应该这样改变:
url:“/Cartable/GetPieRenderer”,

我找到了答案,问题是因为这一部分: url:“可移动/GetPieRenderer”

应该这样改变: url:“/Cartable/GetPieRenderer”

<!-- 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>