2010-10-04 80 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