【问题标题】:MsChart : Partial view errorMsChart:部分视图错误
【发布时间】:2011-01-28 00:54:14
【问题描述】:

当我在我的 MVC 项目上使用 Mchart 时遇到问题,当我使用项目的第一个索引页来呈现部分视图名称 index2 时,代码是

<% Html.RenderPartial("Index2"); %>

但是当我运行它时会发生错误,消息是

CS0029:无法将类型“ASP.views_home_index2_ascx”隐式转换为“System.Web.UI.Page”

-表示问题的代码行是

: // 渲染图表控件

第 52 行:Chart2.Page = this;

第 53 行:HtmlTextWriter writer = new HtmlTextWriter(Page.Response.Output);

第 54 行:Chart2.RenderControl(writer);

但是当我将 Index2.ascx 中的所有代码放到 index.aspx 中而不是渲染局部视图时,它可以正常工作

Index2.ascx 的代码是

 <%   
            System.Web.UI.DataVisualization.Charting.Chart Chart2 = new System.Web.UI.DataVisualization.Charting.Chart();
            Chart2.Width = 412;
            Chart2.Height = 296;
            Chart2.RenderType = RenderType.ImageTag;

            Chart2.Palette = ChartColorPalette.BrightPastel;
            Title t = new Title("No Code Behind Page", Docking.Top, new System.Drawing.Font("Trebuchet MS", 14, System.Drawing.FontStyle.Bold), System.Drawing.Color.FromArgb(26, 59, 105));
            Chart2.Titles.Add(t);
            Chart2.ChartAreas.Add("Series 1");

            Chart2.Series.Add("Series 1");

            // add points to series 1
            Chart2.Series["Series 1"].Points.AddY(3);
            Chart2.Series["Series 1"].Points.AddY(4);
            Chart2.Series["Series 1"].Points.AddY(5);

            Chart2.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;
            Chart2.BorderColor = System.Drawing.Color.FromArgb(26, 59, 105);
            Chart2.BorderlineDashStyle = ChartDashStyle.Solid;
            Chart2.BorderWidth = 2;

            Chart2.Legends.Add("Legend1");

            // Render chart control
            Chart2.Page = this;
            HtmlTextWriter writer = new HtmlTextWriter(Page.Response.Output);
            Chart2.RenderControl(writer);

%>

【问题讨论】:

    标签: asp.net asp.net-mvc mschart


    【解决方案1】:

    该错误似乎表明它必须位于 ASP.NET 页面中,可能是因为 MVC 体系结构的更改以及视图如何不真正使用页面/控件集合。

    为了简化这个过程,您可以创建一个 HTML 帮助器方法,该方法以可重用的方式为您完成大部分工作。此外,您也可以尝试使用 a 并将控件嵌入到页面中作为替代方案。如果你想做辅助路由,你可以这样做:

    public static class ChartExtensions
    {
       public static string Chart(this HtmlHelper html, <settings>)
       {
         //Put code here, return a string
       }
    }
    

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      相关资源
      最近更新 更多