asp.net – 在MVC和WebForms之间共享一个主 – 处理

前端之家收集整理的这篇文章主要介绍了asp.net – 在MVC和WebForms之间共享一个主 – 处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个很大的遗留应用程序,我们想要开始使用MVC来实现新的功能.

为此,我们添加自定义路由,例如:

routes.IgnoreRoute( "{*allaspx}",new { allaspx = @".*\.as[pmh]x(/.*)?" } );

而且我们希望在旧的WebForms和新的MVC页面之间共享主页面.

这似乎很简单 – 改变了主机从ViewMasterPage继承,它也可以用作MVC页面的主机.

问题是HTML< form>.

主页具有< form>标签在顶部和3个内容面板里面,这是WebForms喜欢它.页面控件覆盖主表单以指向页面,这似乎是一个硬编码的行为.

所有三个内容面板都有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模式需要将视图发布回不同的操作(例如,“详细信息”视图可能会发布回“编辑”操作).

有人知道一个很好的方法吗?

解决方法

我们在Web表单和没有< form>的MVC之间共享一个主页面.您可以为Web表单创建一个中间母版页,然后再使用您的根母版页,但添加< form&gt ;.主页的层次结构对于这些构造非常有用.

猜你在找的asp.Net相关文章