Affichage de System.Web.Helpers.Chart dans une vue partielle du modèle

J’essayais donc d’utiliser les aides graphiques dans l’espace de noms System.Web.Helpers.

selon http://www.asp.net/web-pages/tutorials/data/7-displaying-data-in-a-chart

Je crée le graphique dans une vue .cshtml mais je voulais le conserver dans le ViewModel.

Pas de problème, sauf lorsque j’essaie de la rendre sous forme d’image plus petite sur le site Web.

Je pensais que la solution la plus propre serait de créer une vue partielle partagée pour rendre les graphiques à partir de modèles

https://stackoverflow.com/questions/9685302/showing-system-web-helpers-chart-in-a-partial-view-from-the-model/_graph.cshtml

@model System.Web.Helpers.Chart @Model.Write() 

Et puis restituer cette vue partielle en quelque sorte dans les sites Web appropriés. J’ai essayé quelques versions mais n’arrive pas à le faire fonctionner.

Website.cshtml

 

Some header above a graph

Cela ne fonctionne pas et je ne suis pas sûr de savoir comment faire cela. Penser que je peux penser maintenant, c’est faire en sorte que tous les modèles avec des graphiques héritent d’une Interface qui expose Chart et laisse ce modèle devenir le modèle de https://stackoverflow.com/questions/9685302/showing-system-web-helpers-chart-in-a-partial-view-from-the-model/_graph.cshtml.

  

Mais je ne sais pas si cela utilise le modèle.

Des opinions?

 

Some header above a graph

et alors vous pourriez avoir une action de contrôleur:

 public ActionResult DrawChart() { MyViewModel model = ... return View(model); } 

et une vue correspondante qui dessinera le graphique ( DrawChart.cshtml ):

 @model MyViewModel @{ // TODO: use the data from the model to draw a chart var myChart = new Chart(width: 600, height: 400) .AddTitle("Chart Title") .AddSeries( name: "Employee", xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" }, yValues: new[] { "2", "6", "4", "5", "3" }) .Write(); } 

et le résultat rendu:


entrez la description de l'image ici

 

Some header above a graph

public ActionResult DrawChart() { MyViewModel model = ... return View(model); }

!!! Pour envoyer le paramètre Model à DrawChart

Changer en

 

Some header above a graph

public ActionResult DrawChart(MyViewModel _MyViewModel ) { MyViewModel model = MyViewModel ; return View(model); }

MyViewModel est Null

Demander conseil à ceux qui savent.