Я пытаюсь отобразить графики MVC, как показано в Creating a HTML5 Chart Helper Extension for ASP.NET MVC 4. У меня стандартный рабочий проект, но я не могу получить сразу несколько графиков в частичных представлениях, вызываемых одним представлением.Рендеринг HTML5 Графики в частичных представлениях показывают только пустые данные
Я буду пропустить обзор классов ChartExtensions.cs
и HelperModel.cs
, так как они описаны в статье выше.
Я создал контроллер с несколькими видами:
public class WelcomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Creating your own HtmlHelper library";
var data = WelcomeHelper.GetData1();
return View(data);
}
public ActionResult DisplayAllGraphs()
{
ViewBag.Message = "Show all charts";
var dataSet = new DataGroup();
dataSet.Datas.Add(WelcomeHelper.GetData1());
dataSet.Datas.Add(WelcomeHelper.GetData2());
return View(dataSet);
}
public ActionResult PartialDisplayGraphs(TwoDimensionalData data)
{
ViewBag.Message = "Chart by request";
return View(data);
}
}
Я заселить его с быстрым вспомогательный класс
public class WelcomeHelper
{
public static TwoDimensionalData GetData1()
{
var data = new TwoDimensionalData();
data.Data.Add(new int[] { 2000, 3045 });
data.Data.Add(new int[] { 2001, 7045 });
data.Data.Add(new int[] { 2002, 9045 });
data.Data.Add(new int[] { 2003, 13045 });
data.Data.Add(new int[] { 2004, 15045 });
data.Id = 1;
return data;
}
public static TwoDimensionalData GetData2()
{
var data = new TwoDimensionalData();
data.Data.Add(new int[] { 2005, 18045 });
data.Data.Add(new int[] { 2006, 20845 });
data.Data.Add(new int[] { 2007, 23045 });
data.Data.Add(new int[] { 2008, 20345 });
data.Data.Add(new int[] { 2009, 23405 });
data.Id = 2;
return data;
}
}
попытке отобразить все графики с DisplayAllGraphs.cshtml
@model PostingGraphs.Models.DataGroup
@{
ViewBag.Title = "DisplayAllGraphs";
}
<h2>@ViewBag.Message</h2>
<section>
@Html.Partial("PartialDisplayGraphs", data)
</section>
и PartialDisplayGraphs.cshtml
для частичного просмотра -
@model PostingGraphs.Models.TwoDimensionalData
@using PostingGraphs.Extensions
@using (Html.BeginForm())
{
<label>Model ID: @Model.Id</label>
@Html.Chart("sampleChart" + Model.Id, Model.Data, "Year", "Hits in Thousands")
}
@section Scripts
{
<script type="text/javascript">
$(function() {
barChart();
});
</script>
}
Что я серия <section>
с с этикеткой Model ID: # где # правильно совпадает с идентификатором данных, передаваемых в качестве модели. То, что я не получаю, это диаграмма, хотя раздел разнесен так, как ожидалось.
Я что-то упустил? Это проблема с идентификаторами в коде для расширений диаграммы, создающих javascript?
EDIT: Добавлен уникальный идентификатор идентификатора холста, который включает индекс точек данных. изменение форма внутри форма выпуск.
Что такое переменная данных внутри @ Html.Partial («PartialDisplayGraphs», data)? Также вы создаете форму внутри формы, которая не является допустимым html. –
@emrenevayeshirazi Переменная данных - это переменная типа TwoDimensionalData, которую я получаю из класса-помощника. В представлении отображается метка идентификатора, связанного с диаграммой. Хороший вопрос о форме в форме ... Должен был увидеть это сам. Я уточню это завтра утром. –
@emrenevayeshirazi Я обновил для вопроса в форме, до сих пор не знаю, почему это не работает. –