我们有一个很大的遗留应用程序,我们希望开始使用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