首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jquery调用的Asp.Net MVC剃须刀图

使用jquery调用的Asp.Net MVC剃须刀图
EN

Stack Overflow用户
提问于 2016-11-26 18:00:03
回答 3查看 1.3K关注 0票数 4

我正试图通过剃须刀将数据绑定到图形中。我通过jquery调用提取数据,并计划将结果数据绑定到图中。在jquery成功函数中是否有包含剃刀代码的选项?如何在图表代码中将计数值绑定到x、yValues?

https://www.asp.net/web-pages/overview/data/7-displaying-data-in-a-chart

代码语言:javascript
运行
复制
@{
    var CountsPath = Server.MapPath("~/Content/Images/counts.jpg");

    if (File.Exists(CountsPath))
    {
        File.Delete(CountsPath);
    }

    var PathName = "~/Content/Images/counts.jpg";
    if (!File.Exists(Server.MapPath(PathName)))
    {
        var chartImage = new Chart(600, 400);
        chartImage.AddTitle("Count");
        chartImage.AddSeries(
            chartType: "Pie",
                name: "Sales",
                axisLabel: "Count",
                xValue: new[] { "2011", "2014" },//need from json
                yValues: new[] { "40", "285" });//need from json
        chartImage.Save(path: PathName);
    }
}

Jquery脚本

代码语言:javascript
运行
复制
<script>
    $(document).ready(function () {
        $.ajax({
            type: 'get',
            url: '/Home/GetSales',
            success: function (data) {
//Bind sales data counts by year result to graph

            },
            error: function (response) {
                alert(response.Message);
            },
            dataType: 'json'
        });
    });
</script>

结果Json:

代码语言:javascript
运行
复制
{"Sales":[
    {"Year":"2011", "loc":"ca"},
    {"Year":"2014", "loc":"wa"},
    {"Year":"2011", "loc":"wi"}
]}

编辑:或者我可以在Razor代码中使用jquery结果组?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-30 10:18:15

正如@Stephen所说,这种解决方案是不可能的,但是,也许您可以尝试使用一个部分视图在服务器中呈现您的图形,然后在您的网页中插入ajax。

就像这样:

代码语言:javascript
运行
复制
<div>
    your page content
    <div id="graph">
    </div>
</div>

剧本:

代码语言:javascript
运行
复制
$("#graph").load("MyAction", { yourdata }, function() { yourcallback });

在“MyAction”中:

代码语言:javascript
运行
复制
public ActionResult MyAction( ... ) {
    ...
    return PartialView(Model);
};

因此,在本例中,在“MyAction”部分视图中,您可以生成图形。

票数 4
EN

Stack Overflow用户

发布于 2016-11-30 10:41:41

无法从javascript更新C#对象(即chartImage)。

但是,在调用服务器获取Json数据时,您可以做一件事。因此,您可以直接获得图表,而不是获取数据。

以下是代码:-在HomeController中

代码语言:javascript
运行
复制
public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GetSales()
    {
        var chartImage = new Chart(600, 400);
        chartImage.AddTitle("Count");
        chartImage.AddSeries(
            chartType: "Pie",
                name: "Sales",
                axisLabel: "Count",
                xValue: new[] { "2011", "2014" },// Make change based on your Json Data
                yValues: new[] { "40", "285" }// Make change based on your Json Data
                ).Write(format: "jpg");
        return null;
    }
}  

Index.cshtml

代码语言:javascript
运行
复制
@{
   ViewBag.Title = "Index";   
 } 

<h2>Index</h2>

<img src="/home/GetSales" />
票数 4
EN

Stack Overflow用户

发布于 2016-12-06 06:20:33

代码语言:javascript
运行
复制
I have created chart in my application using below code 

// On controller side

public void My_Chart(List<my_Class> objClass)
    {
        var myChart = new Chart(width: 400, height: 300, theme: ChartTheme.Blue)
        .AddTitle("My Chart Title")
        .AddLegend()
        .AddSeries("Default",
         xValue: objClass, xField: "FieldName",
         yValues: objClass, yFields: "FieldName")
        .ToWebImage("png");
        // Charts is folder inside my project where image is got saved
        myChart.Save("~/Charts/My_image", "jpeg");
    }


// And .cshtml side code is as follows

<img src="../Charts/My_image.jpeg" />`enter code here`

Note: before image loads your controller side code must be initialised
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40821381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档