MVC Chart Helper - передача данных с контроллера для просмотра - PullRequest
0 голосов
/ 25 октября 2018

В моем приложении MVC я использую диаграмму внутри бритвы.Если график помещен в Details.cshtml, тогда весь экран является графиком, поэтому он должен быть частичным.Исходные данные рассчитываются по методу Details() контроллера, и я передаю их в представление в ViewBag.Затем я передаю ViewBag контроллеру для метода Chart().

Я не могу отобразить диаграмму, передав данные с ViewBag.Ошибка System.ArgumentOutOfRangeExcption: Data points insertion error Number of X values is less than Y values, которая говорит мне, что она не читает ViewBag.m.

Я проверил, проверяет ли ViewBag.months метод Chart(), и это,Так что ViewBag.m должно быть до Chart.cshtml, но я не могу сказать, так как я не смог даже произвести какой-либо вид рендеринга текста с частичным.

контроллер ...

public ActionResult Details()
{
  ...
  ViewBag.months = new string[] { "Jan", "Feb", "Mar", "Apr", "May" };
  return View(item);
}

 public ActionResult Chart(string[] months)
 {
   ViewBag.m = months;
   return View();
 }

Details.cshtml

...
@RenderChart()

@helper RenderChart()
{
  <div id="chart-content" style="margin-top: 15px">
  <img src="@Url.Action("Chart", "Sales", new { months = ViewBag.months })" />
  </div>
}
...

Chart.cshtml

@{
  var myChart = new Chart(width: 300, height: 200)
    .AddTitle("Sales")
    .AddSeries(
        name: "Months",
        chartType: "Line",
        xValue: ViewBag.m,
        yValues: new[] { "2", "6", "4", "5", "3" })
    .Write();
}

Как диаграмма может получить доступ к данным в частичном представлении?

Есть ли лучший способсделать это?

...