如何在MVC应用程序中添加Web表单页面作为局部视图?

时间:2015-04-16 07:21:52

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我想在MVC应用程序的多个页面中使用asp:chart控件。我的网页也有一些其他内容。所以我想添加一个带有图表控件的aspx Web表单页面作为局部视图。 我知道一个html助手可用于图表。但是,我不想使用它,因为我已经有一个带有asp:chart控件的webform页面。我可以添加它。

我在网上搜索了很多。我正在获取关于如何在MVC应用程序中添加带有母版页的webform页面的博客,但是没有获取Web表单作为局部视图。有些人可以给出一些想法或任何可以遵循的链接。

带图表控件的我的aspx页面

<asp:Chart ID="chartMain" runat="server" Height="500px" Width="780px" BackGradientStyle="TopBottom" BackSecondaryColor="White"
            Palette="BrightPastel" BorderColor="Gray" BackColor="#f4f4f4" BorderlineDashStyle="Solid" BorderWidth="4" ImageType="Png">
            <Legends>
                <asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold"></asp:Legend>
            </Legends>
            <ChartAreas>
            </ChartAreas>
</asp:Chart>

&安培;在后面的代码我正在初始化asp:图表控件属性。

public partial class AspNetchart : Page
{
    protected void Page_Load(object Sender, EventArgs E)
    {
        try
        {
            DrawChart();
            return;
        }
        catch (Exception Ex)
        {  }
    }

    private void DrawChart()
    {
        try
        {
            // Set the data source
            chartMain.DataSource = ObjChartDetails.ChartDataSource;

            // Add series
            AddSeries();

            // Prepares chart area
            DrawChartArea();
        }
        catch (Exception Ex)
        {}
    }
}

现在我在这个aspx页面中有图表。我只是想在我的MVC应用程序中将此aspx页面渲染为局部视图。

2 个答案:

答案 0 :(得分:0)

我认为你只需要在MVC Action中渲染你的ASPX页面,这样就可以在里面渲染图表了。 如果是这样,您可以参考以下链接来执行此操作。

Webform in MVC

您可以使用上面提到的操作并返回父页面中的内容。 使用@Html.Action()即可。

答案 1 :(得分:0)

据我所知,解决方法是将ASPX页面呈现为字符串,然后包含在RAZOR页面中:

渲染:

StringWriter _writer = new StringWriter();
HttpContext.Current.Server.Execute("MyPage.aspx", _writer);

string html = _writer.ToString();