How to display WebForms .ascx as partial view in MVC 3

后端 未结 3 1905
孤城傲影
孤城傲影 2021-01-06 13:56

I am building a new ASP.NET MVC 3 application. In this application, I would like to display an old WebForms user control (.ascx/.ascx.cs) in an overlay in my new MVC razor a

相关标签:
3条回答
  • 2021-01-06 13:58

    It is very bad practice to do such a thing. However this could be achieved by the following code:

    @Html.Partial("_Foo")
    

    Then in your _Foo partial view, you could have the following:

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
    <%@ Register Assembly="SomeAssembly" Namespace="SomeNs" TagName="foo" %>
    
    <foo:SomeControl runat="server" ID="fooControl" />
    

    Hope this helps. Have a look at this question:

    • MVC 3: Add usercontrol to Razor view
    0 讨论(0)
  • 2021-01-06 14:10

    The long answer involves 'yes you can, but....'

    The short answer is, you shouldn't.

    Without knowing the specifics of your .ascx file, you can render a partial using

    @Html.Partial(PageName)
    

    But, if you have any server controls they will not work. MVC doesn't support the same kind of call back control state functionality. So, you are using any thing resembling

    <asp:Button runat=server />
    

    then you're far better off re-factoring your partial.

    0 讨论(0)
  • 2021-01-06 14:24

    I'm working on something similar. I've found these links that might help you.

    http://www.codemag.com/article/1009061

    How do I render a remote ReportViewer aspx page in MVC4?

    How can I use a reportviewer control in an asp.net mvc 3 razor view?

    0 讨论(0)
提交回复
热议问题