2016-09-20 89 views
0

所以我使用Telerik的使用下面的代码如何从JSON请求中检索值?

@(Html.Kendo().Chart<OCM.Model.Dashboard>() 
 
         .Name("chart") 
 
         .Title(title => title 
 
           .Text("Customer Satisfaction") 
 
             .Position(ChartTitlePosition.Bottom)) 
 
           .Legend(legend => legend 
 
           .Visible(false) 
 
         ) 
 
         .ChartArea(chart => chart 
 
          .Background("transparent") 
 
         ) 
 
         .HtmlAttributes(new { style = "background: center no-repeat url(" + @Url.Content("~/Content/shared/world-map.png") }) 
 
         .Series(series => 
 
         { 
 
          series.Pie(new dynamic[] { 
 
           new {category="Happy",color="#9de219"}, 
 
           new {category="Unhappy",color="#90cc38"}, 
 
           new {category="Normal",color="#068c35"} 
 
          }) 
 
          .Labels(labels => labels 
 
           .Template("#= category #: \n #= value#%") 
 
           .Background("transparent") 
 
           .Visible(true) 
 
          ) 
 
          .StartAngle(150); 
 
         }) 
 
         .DataSource(ds => 
 
         { 
 
          ds.Read(read => read.Action("GetSatisfaction", "Dashboards")); 
 
         }) 
 
         .Tooltip(tooltip => tooltip 
 
          .Visible(true) 
 
          .Format("{0}%") 
 
         ) 
 
        )

实现图表,我通过控制器使用JSON请求来获取值从数据库返回的。

public ActionResult GetSatisfaction([DataSourceRequest] DataSourceRequest request) 
    { 
     return Json(Data().ToDataSourceResult(request)); 

    } 

    private List<DashboardViewModel> Data() 
    { 
     var details = new List<DashboardViewModel>(); 

     List<Dashboard> social = BALDashboard.GetSocialMediaDashboard(); 

     Mapper.CreateMap<Dashboard, DashboardViewModel>(); 

     return Mapper.Map<List<DashboardViewModel>>(social); 


    } 

现在JSON请求可以工作,我可以从数据库检索值。我的问题是我想要将这些值传递给图表中的快乐,不快乐和正常,以便饼图值显示,但由于我猜JSON以数组的形式传递它不起作用。

任何人都可以帮我吗?

+0

请注意,模型 - 视图 - 控制器标记是关于模式的问题。 ASP.NET-MVC实现有一个特定的标签。 –

回答

0

所以我用ViewBag解决这个问题,并报废了JSON请求

 ViewBag.Happy = 2; 
     ViewBag.UnHappy = 2; 
     ViewBag.Normal = 2; 
     List<Dashboard> social = BALDashboard.GetSocialMediaDashboard(); 

     Mapper.CreateMap<Dashboard, DashboardViewModel>(); 

     //if(social == null) 
     // social = new Dashboard(); 

     ViewData["social"] = social; 

     ViewBag.Happy = social[0].Happy ; 
     ViewBag.UnHappy = social[0].UnHappy; 
     ViewBag.Normal = social[0].Normal; 
     return View();