Я был здесь раньше и, в конечном итоге, набросал для отдельных главных страниц, однако:
Возможно, вы не присматривались слишком внимательно, но у вас есть контроль над тем, где и как эта форма обернута вокругвесь ваш контейнер
[Редактировать]: более полный пример:
<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 и одна наследованная от этого только для MVC.
Сохраненные вещидовольно чистый и готовый к переносу его из Webforms в будущем.