2016-01-22 2 views
1

Я петь asp.net mvc 4 и разместил диаграмму на виду. Я хочу загрузить свою серию от controller. Как я могу это сделать ? пожалуйста, кто-нибудь может объяснить это с помощью кода.Прохождение диаграмм серии от контроллера к виду Razor

Index Просмотр

@{ 
var myChart = new Chart(width: 600, height: 400) 
    .AddTitle("Chart Title") 
    .AddSeries(
     name: "Views", 
     xValue: new[] { "Monday", "Tuesday", "Wendesday", "Thursday", "Friday" }, 
     yValues: new[] { "2", "6", "4", "5", "3" }) 
    .AddSeries(
     name: "Downloads", 
     xValue: new[] { "Monday", "Tuesday", "Wendesday", "Thursday", "Friday" }, 
     yValues: new[] { "1", "2", "3", "4", "5" }) 

     .Write(); 
} 

Контроллер

public ActionResult Index() 
    { 
     return View(); 
    } 

ответ

1

Это абсолютно возможно. Начнем с создания новой модели представления для представления данных диаграммы.

public class ChartSeriesData 
{ 
    public string[] XValues { set; get; } 
    public string[] YValues { set; get; } 
    public string Name { set; get; } 
} 

public class MyChartData 
{ 
    public List<ChartSeriesData> Series { set; get; } 
    public string Name { set; get; } 
} 

И в методе действий, создать объект, если MyChartData класса, Уста различных значений свойств и отправить его на просмотр.

public ActionResult MyChart() 
{ 
    var vm= new MyChartData { Name = "MyChartTitle",Series = new List<ChartSeriesData>()}; 
    vm.Series.Add(new ChartSeriesData 
    { 
     Name = "View", 
     XValues = new[] { "Monday", "Tuesday", "Wendesday", "Thursday", "Friday" }, 
     YValues = new[] { "2", "6", "4", "5", "3" }} 
    ); 

    vm.Series.Add(new ChartSeriesData 
    { 
     Name = "Downloads", 
     XValues = new[] { "Monday", "Tuesday", "Wendesday", "Thursday", "Friday" }, 
     YValues = new[] { "1", "2", "6", "5", "3" } 
    }); 
    return View(vm); 
} 

Теперь на ваш взгляд, который сильно типизированных к нашей MyChartData вид модели, мы будем перебирать свойства серии и вызвать метод AddSeries.

@model ReplaceWithYourNameSpaceHere.MyChartData 
@{ 
    var myChart = new Chart(width: 600, height: 400) 
     .AddTitle(Model.Name); 

    foreach (var item in Model.Series) 
    { 
     myChart.AddSeries(name: item.Name, xValue: item.XValues, yValues: item.YValues); 
    } 

    myChart.Write(); 
} 

Если вы хотите включить диаграмму в другой точке зрения бритвы, вы можете использовать тег изображения и установите значение атрибута src к методу MyChart действий.

<img src="@Url.Action("MyChart","Home")" alt="Some alt text" /> 

Предполагая MyChart метод действия существует в HomeController.

Смежные вопросы