【发布时间】: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