【问题标题】:How to display WebForms .ascx as partial view in MVC 3如何在 MVC 3 中将 WebForms .ascx 显示为部分视图
【发布时间】:2013-01-14 23:42:33
【问题描述】:

我正在构建一个新的 ASP.NET MVC 3 应用程序。在这个应用程序中,我想在我的新 MVC razor 应用程序的覆盖中显示一个旧的 WebForms 用户控件 (.ascx/.ascx.cs) 作为局部视图。我在网上找不到任何关于这样做的信息。谁能告诉我这是否可行,如果可以,请给我一些文档?谢谢。

【问题讨论】:

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


    【解决方案1】:

    这样做是非常糟糕的做法。然而,这可以通过以下代码来实现:

    @Html.Partial("_Foo")
    

    然后在您的_Foo 部分视图中,您可以拥有以下内容:

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

    希望这会有所帮助。看看这个问题:

    【讨论】:

    • 谢谢先生。我试试看。
    【解决方案2】:

    长答案是“是的,你可以,但是....”

    简短的回答是,你不应该。

    在不知道 .ascx 文件的细节的情况下,您可以使用渲染部分

    @Html.Partial(PageName)
    

    但是,如果您有任何服务器控件,它们将不起作用。 MVC 不支持相同类型的回调控制状态功能。所以,你正在使用任何类似的东西

    <asp:Button runat=server />
    

    那么你最好重新分解你的部分。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2011-03-28
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多