【发布时间】:2010-11-05 02:23:13
【问题描述】:
我们有一个大型遗留应用程序,我们想开始使用 MVC 来实现新功能。
为此,我们添加了自定义路由,例如:
routes.IgnoreRoute( "{*allaspx}", new { allaspx = @".*\.as[pmh]x(/.*)?" } );
我们希望在旧的 WebForms 和新的 MVC 页面之间共享母版页。
这看起来很简单 - 将 master 更改为从 ViewMasterPage 继承,它也可以用作 MVC 页面的 master。
问题在于 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 模式需要将视图回发到不同的操作(例如,“详细信息”视图可能会回发到“编辑”操作)。
有人知道解决这个问题的好方法吗?
【问题讨论】:
-
我知道这个相关的问题:stackoverflow.com/questions/841418这里我特别关心表单标签的问题
标签: asp.net asp.net-mvc webforms