asp.net webforms / mvc app中aspnetForm的问题

时间:2010-10-04 09:57:59

标签: asp.net asp.net-mvc asp.net-mvc-2 webforms

我正在构建一个混合的MVC / Webforms应用程序,其中我的MVC视图使用的是asp.net webforms 2 MasterPage。在我决定在MVC视图中添加表单之前,一切都运行良好。由于ASP.NET Webforms将整个页面包装在表单元素中,并且您不能在表单中包含表单,因此我有点卡住了。

主页面中有大量遗留控件依赖于回发,所以我不能只禁用它。我现在想到的是,依赖于aspnetForm表单的所有控件都在MVC页面之上,所以想知道是否有控制asp.net何时关闭aspnetForm表单标签?或者有没有人对我如何解决这个问题有任何其他想法?

2 个答案:

答案 0 :(得分:1)

我以前来过这里,然后最终选择了不同的母版页:

也许您没有仔细观察,但您可以控制该表格在整个容器中的位置和方式

[编辑]:更完整的例子:

<body>
<form id="form1" runat="server">
<div>
    <asp:ContentPlaceHolder ID="LegacyContentHolder" runat="server">

    </asp:ContentPlaceHolder>
</div>
</form>
<asp:ContentPlaceHolder ID="MvcContentPlaceHolder" runat="server">

 </asp:ContentPlaceHolder>    
</body>

当然,您可以在Webforms的适当占位符周围移动它,并将其他占位符保留在其范围之外?

如果在页面

上使用,则会生成以下标记
<body>
<form name="aspnetForm" method="post" action="Test.aspx" id="aspnetForm">
<div>
 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"     value="/wEPDwUJNDMyNDU0NjAzZGT01Ocz+ON8w56SI8x7nj2/h8B/4g==" />
 </div>

<div>


Web forms behaviour has been generated here, boo

</div>
</form>


MVC content has been generated here, yay


</body>

[编辑]

注意:我现在已经检查了我们的代码,不得不返回几个版本 - 我们还做了三个主页,一个用于上面描述的骨架,一个用于特定的ASP.NET Webforms,一个继承自MVC的东西。

将事情保持清洁,并准备好将来从Webforms迁移出来。

答案 1 :(得分:0)

shouldn't have a problem,您可以控制表单标记在母网页中的位置。您是说在将其用于MVC时需要提前关闭母版页的表单标记,并将其保留在WebForms的位置?您可能需要弄乱控制树,当我在使用两个主人之前完成此操作时,尽管您可以通过抽象共同base.master来逃避,然后mvc.masterwebforms.master