【问题标题】:Hybrid WebForms/ASP.NET MVC [duplicate]混合 WebForms/ASP.NET MVC [重复]
【发布时间】:2009-02-13 15:34:41
【问题描述】:

可能重复:
ASP.NET MVC alongside Web Forms in the same web app?

我对 .NET 应用程序有点陌生,我正在开发一个 Web 表单应用程序,我即将开始开发新页面,我正在尝试使用 ASP.NET MVC 制作新页面,但我无法让页面点击控制器。首先我添加了库引用,添加了 global.asax 上的路由,但不确定还缺少什么,有人可以帮我吗?

谢谢。

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    在字里行间,您正在尝试将 MVC 页面添加到您现有的 ASP.NET Webforms Web 应用程序中?

    如果是这种情况,那么您可能需要一些 MVC 特定的配置。设置。最简单的方法是创建一个新的 MVC Web 应用,然后合并配置设置。

    此外,如果您正在做一个混合项目,我建议您阅读有关该主题的 Scott Hanselmann's post

    【讨论】:

    • 我支持将 Web.config ASP.NET MVC 设置与现有设置进行比较并考虑仔细合并的观点。
    【解决方案2】:

    在这些链接中有更多关于将 MVC 添加到 WebForms 应用程序的分步说明:

    您可能还想使用文本编辑器将 ProjectTypeGuid 添加到项目文件中({603c0e0b-db56-11dc-be95-000d561079b0} 用于指定 Visual Studio 使用 MVC 扩展。)

        <ProjectTypeGuids>{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    

    上面的链接也没有完全覆盖需要配置的 web.config 的 system.webserver 区域。

    【讨论】:

      【解决方案3】:

      Scott Hanselman 发布了一个“完全不受支持”的 Nuget 包,它将 MVC 3 功能添加到现有的 Web 窗体项目中。它也可以在我的电脑上运行(哈哈),我已经在多个项目中使用过它。

      http://nuget.org/List/Packages/AddMvc3ToWebForms

      他在这里写了一篇博客:

      http://www.hanselman.com/blog/CreatingANuGetPackageIn7EasyStepsPlusUsingNuGetToIntegrateASPNETMVC3IntoExistingWebFormsApplications.aspx

      一个新手提示:这个包将在 /App_Start/RegisterMvc3Routes.cs 中配置你的 MVC 路由

      【讨论】:

        【解决方案4】:

        过去几个月我在这方面花了很多时间。以下是我的观察。

        好/容易 - 让Webforms 调用MVC 控制器 - 建立一个新的MVC3 项目并将Webforms 页面放入其中非常容易。 - 我能够将我的&lt;pages&gt;&lt;controls&gt;&lt;/controls&gt;&lt;/pages&gt; 部分移动到新web.config/pages 目录中

        肮脏/困难

        • Regarding the GUID

          • 请注意,由于某种原因,GUID 必须添加到行首...每次我尝试都失败了。直到我偶然发现一个帖子,坚持认为它是在其他人之前。
          • 我也不知道有什么区别,但我有不同的 GUID 工作...{E53F8FEA-EAE0-44A6-8774-FFD645390401}
        • 将登录页面设置为Webforms 导致各种障碍。

        • 让 jQuery 智能感知与T4MVC 完美配合

        这就是我为解决这个问题所做的事情

        @if (System.Diagnostics.Debugger.IsAttached)
            { 
            <script src="../../Scripts/Mvc3/jquery-1.7-vsdoc.js" type="text/javascript"></script> @* intellisense! *@
             @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_1_7_js)
             @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_unobtrusive_ajax_js)
            }
            else
            {
                @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_1_7_min_js) 
                @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_unobtrusive_ajax_min_js)  
            }
        

        建议:

        • 在所有情况下都使用T4MVC,即使您是纯网络表单。消除静态内容(.js.css、图像、指定模板)的魔术字符串非常出色。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-12-18
          • 1970-01-01
          • 2010-10-02
          • 2012-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多