【发布时间】:2009-02-13 15:34:41
【问题描述】:
我对 .NET 应用程序有点陌生,我正在开发一个 Web 表单应用程序,我即将开始开发新页面,我正在尝试使用 ASP.NET MVC 制作新页面,但我无法让页面点击控制器。首先我添加了库引用,添加了 global.asax 上的路由,但不确定还缺少什么,有人可以帮我吗?
谢谢。
【问题讨论】:
标签: asp.net asp.net-mvc
我对 .NET 应用程序有点陌生,我正在开发一个 Web 表单应用程序,我即将开始开发新页面,我正在尝试使用 ASP.NET MVC 制作新页面,但我无法让页面点击控制器。首先我添加了库引用,添加了 global.asax 上的路由,但不确定还缺少什么,有人可以帮我吗?
谢谢。
【问题讨论】:
标签: asp.net asp.net-mvc
在字里行间,您正在尝试将 MVC 页面添加到您现有的 ASP.NET Webforms Web 应用程序中?
如果是这种情况,那么您可能需要一些 MVC 特定的配置。设置。最简单的方法是创建一个新的 MVC Web 应用,然后合并配置设置。
此外,如果您正在做一个混合项目,我建议您阅读有关该主题的 Scott Hanselmann's post。
【讨论】:
在这些链接中有更多关于将 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 区域。
【讨论】:
Scott Hanselman 发布了一个“完全不受支持”的 Nuget 包,它将 MVC 3 功能添加到现有的 Web 窗体项目中。它也可以在我的电脑上运行(哈哈),我已经在多个项目中使用过它。
http://nuget.org/List/Packages/AddMvc3ToWebForms
他在这里写了一篇博客:
一个新手提示:这个包将在 /App_Start/RegisterMvc3Routes.cs 中配置你的 MVC 路由
【讨论】:
过去几个月我在这方面花了很多时间。以下是我的观察。
好/容易
- 让Webforms 调用MVC 控制器
- 建立一个新的MVC3 项目并将Webforms 页面放入其中非常容易。
- 我能够将我的<pages><controls></controls></pages> 部分移动到新web.config 的/pages 目录中
肮脏/困难
GUID 必须添加到行首...每次我尝试都失败了。直到我偶然发现一个帖子,坚持认为它是在其他人之前。{E53F8FEA-EAE0-44A6-8774-FFD645390401}
将登录页面设置为Webforms 导致各种障碍。
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、图像、指定模板)的魔术字符串非常出色。
【讨论】: