我們有一個很大的遺留應用程序,我們希望開始使用MVC來實現新功能。在MVC和WebForms之間共享主 - 處理<form>
要做到這一點,我們添加自定義路由,例如:
routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.as[pmh]x(/.*)?" });
我們想要將舊的WebForms和新的MVC頁面之間共享的母版頁。
這看起來很簡單 - 將主人從ViewMasterPage
更改爲繼承人,它也可以用作MVC頁面的主人。
問題是HTML <form>
。
主頁面頂部有一個<form>
標籤,裏面有3個內容面板,這就是WebForms喜歡它的方式。 Page
控件會覆蓋主窗體以指向頁面,並且這看起來是硬編碼行爲。
所有三個內容面板都有WebForms控件,因此頁面級別<form>
標籤需要在它們之外以涵蓋所有三個。事情是這樣的:
<form id="form1" runat="server">
...
<asp:contentplaceholder id="content1" runat="server" />
...
<asp:contentplaceholder id="content2" runat="server" />
... //etc
</form>
然而,對於MVC我們希望有使用Html.BeginForm
助手的意見,內部形式。 HTML不會讓你嵌套表單。 MVC模式需要將視圖發回不同的動作(例如,「細節」視圖可能會回發到「編輯」動作)。
有沒有人知道解決這個問題的好方法?
我知道這個相關的問題:http://stackoverflow.com/questions/841418這裏我特別關注表單標籤的問題 – Keith 2009-06-23 08:13:07