2010-10-04 60 views
1

我正在构建一个混合MVC/Webforms应用程序,其中我的MVC视图正在使用asp.net webforms 2 MasterPage。在我决定在MVC视图中放置一个表单之前,一切都一直很好。由于ASP.NET Webforms将整个页面封装在一个表单元素中,并且您无法在表单中创建表单,所以我有点卡住了。混合asp.net中的aspnetForm问题webforms/mvc app

母版页中有一些传统控件负载依赖于回发,所以我不能仅仅禁用它。我现在所想的是,所有依赖于aspnetForm表单的控件都在MVC页面的上方,所以想知道asp.net关闭aspnetForm表单标签时是否有控制权?或者有没有人有任何其他想法,我可以如何解决这个问题?

回答

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> 

当然你可以移动周围的Web表单的东西适当的占位符,并留下了它的范围之外的其他占位符?

如果一个页面上使用这生成以下标记

<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中移出将来。

0

shouldn't have a problem,您可以控制窗体标签在您的母版页中的位置。您是否说过在使用MVC时需要尽早关闭masterpage的表单标记,并将其留在WebForms的位置?您可能需要在控制树上弄得乱七八糟,当我之前完成此操作之前,我使用了两位主人,尽管您可能能够通过摘录一个共同的base.master逃脱,然后拥有mvc.masterwebforms.master