【问题标题】:Issues with aspnetForm in hybrid asp.net webforms/mvc app混合 asp.net webforms/mvc 应用程序中的 aspnetForm 问题
【发布时间】:2010-10-04 09:57:59
【问题描述】:

我正在构建一个混合 MVC/Webforms 应用程序,其中我的 MVC 视图使用 asp.net webforms 2 MasterPage。在我决定在我的 MVC 视图中放置一个表单之前,一切都运行良好。由于 ASP.NET Webforms 将整个页面包装在一个表单元素中,并且您不能在表单中包含一个表单,所以我有点卡住了。

母版页中有大量依赖回发的旧控件,因此我不能只禁用它。我目前的想法是所有依赖于 aspnetForm 表单的控件都在 MVC 页面的上方,所以想知道是否有任何方法可以控制 asp.net 何时关闭 aspnetForm 表单标签?或者有没有人对我如何解决这个问题有任何其他想法?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-2 webforms


    【解决方案1】:

    我以前来过这里,但最终却为单独的母版页而烦恼:

    也许您没有仔细观察,但您确实可以控制该表单在整个容器周围的位置和方式

    [编辑]:更完整的例子:

    <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 Webforms 内容,还有一个继承自 MVC 的东西。

    保持一些干净,并准备在未来将其从 Webforms 中迁移出来。

    【讨论】:

      【解决方案2】:

      shouldn't have a problem,您可以控制表单标签在母版页中的位置。您是说在将母版页用于 MVC 时需要提前关闭母版页的表单标签,然后将其留在原处用于 WebForms?

      您可能需要弄乱控制树,当我在使用两个主控器之前完成此操作时,尽管您可能能够通过抽象一个常见的base.master 而侥幸逃脱,然后拥有@987654323 @和webforms.master

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-07
        • 1970-01-01
        • 2013-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多