我试图在我的视图上得到一个图表,我在我的视图中显示如下:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>ChartResult</h2> <% using (Html.BeginForm("HandleChartType","Chart")) %> <% { %> <%= Html.DropDownList("ListItems","Select Chart Type")%> <input type="submit" value="Set Chart" /> <%} %> <% myChart.Controls.Add(ViewData["Chart"] as Chart); %> <asp:Panel ID="myChart" runat="server"></asp:Panel> <!--<img src="/Chart/CreateChart" alt="" />--> <h2>FormResults</h2> </asp:Content>
此行<%myChart.Controls.Add(ViewData [“Chart”]为图表); %GT;生成错误消息使用自定义TextWriter时,OutputStream不可用 这是来自控制器的代码:
public ActionResult ChartResult() { List<string> items = GetFilteredChartTypes(); ViewData["ListItems"] = new SelectList(items); Chart myChart = CreateChart(SeriesChartType.Column); ViewData["Chart"] = myChart; return View(); }
CreateChart函数只创建一个以Column作为图表类型的图表.
为什么我会收到此错误,使用自定义TextWriter时OutputStream不可用?
解决方法
我认为这个问题是错误的.
构建图表时,您有两种选择.
构建图表时,您有两种选择.
一种方法是生成图表图像,然后您的视图将包含< img />将src属性设置为控制器/动作的url的标记,生成图表图像.
另一种方法是使用JSON操作构建控制器,该操作仅返回图表数据.这是更灵活的方式,因为您可以自由选择任何可视化图表的现成javascript库(html5 canvas或svg)