【问题标题】:Include WebForms inside ASP.NET MVC (views)?在 ASP.NET MVC(视图)中包含 WebForms?
【发布时间】:2012-04-26 06:29:28
【问题描述】:

我发现了关于如何在 webforms 中包含 asp.net mvc(如 this)的问题和很好的答案,但我需要在 asp.net mvc 中重用一些 webforms。

如何做到这一点?

我正在考虑一种解决方案,其中调用局部视图(或静态帮助程序)会将 Web 表单呈现为 Razor 视图中的局部视图(其他操作)。

有可能吗?

【问题讨论】:

  • 你想做什么? WebForms 和它们包含的服务器端控件通常与 ViewState 和 PostBack 紧密耦合,这些概念在 ASP.NET MVC 中不再存在。因此,即使您找到一种方法将经典 WebForm 呈现为 Razor 视图中的部分内容,除非此 WebForm 非常静态且不包含大量服务器端控件,否则它将毫无用处。更不用说大多数控件可能会抱怨,因为它们需要托管在 <form>runat="server" 中,这在 ASP.NET MVC 中显然不存在。
  • 可以选择使用iframe 元素吗?这很恶心,但它会允许这样做,fsvo 允许。正如 Darin 指出的那样,WebForms 需要一个特殊的设置环境。
  • 我支持iframe 方法。即使它很糟糕,它也是可靠的并且可以保证工作。除此之外,它还允许您将这 2 个作为单独的应用程序,因此不会用 遗留的东西污染您的 ASP.NET MVC 应用程序。无论如何,这个问题没有一般的答案。这在很大程度上取决于您尝试重用的 WebForm 的确切场景和确切内容,以及您在两者之间需要的交互级别。
  • 使用Server.Execute 加载网络表单是另一种可能的解决方案吗?
  • 所有解决方案和方法都是可能的。我正在寻找替代品,暂时。我们会研究、比较和尝试其中的一些,也许其中一种会被采用作为项目更方便的解决方案。

标签: asp.net asp.net-mvc asp.net-mvc-3 razor webforms


【解决方案1】:

也许您可以通过 jquery ajax 加载 WebForm:

$.ajax({ url : 'http://tempuri.org/webfrom.aspx',
         type: 'GET',
         cache : false,
         success : function(data){
             $("#yourcontainer").html(data);
         }
 });

【讨论】:

  • 非常好!一种在 MVC 布局中嵌入 ASPX 的简单方法。
  • 是的!但是类似于直接从视图中调用它。在服务器端嵌入结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2011-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多