我有一份遗产.Net Webforms Web Site Project在VisualStudio 2008 SP1中,我想逐步将一些MVC功能引入其中.

我能找到的关于如何集成ASP的大部分信息.Net MVC和WebForms似乎假定使用Web Application Project.然而,似乎不可能找到关于如何 retrofit 现有ASP的信息.net网站项目与ASP.Net MVC特性.

我已经 comments 了他即将出版的书中的Scott Hanselman's postChapter 13本,这两本书都假设是Web Application Project种类型.

这可能吗?有人知道怎么做吗?

推荐答案

对于初学者来说,将MVC添加到webforms项目非常简单,要在VS 2008 for MVC中获得这些特性需要更多的工作(仍然很容易).首先,要确保引用程序集并正在使用.净3.5.其次,可以在当前的web窗体项目中创建控制器文件夹和视图文件夹.您还可以创建一个带有索引操作的简单控制器.然后在全局路径中设置/配置路由.ascx文件.你应该从那里开始.查here作为参考.

但是,您只能创建代码落后的aspx页面(您可以删除这些页面并在标记中输入正确的继承类).要真正"转换"您的项目类型,以便充分利用MVC和visual studio(添加新视图、goto控制器等)的优点,需要进行一些try .我最好的建议是在VS 2008中创建一个新的MVC项目和一个新的Web应用程序项目,并比较两者之间的差异.csproj文件为纯文本.有一个长字符串值告诉VS项目模板.

相信我,这确实管用.我以前在我自己的遗留项目上做过.除了try /错误/消除之外,我不记得我是如何找到项目类型"key"的.ASP.Net MVC does play nice in the same project as webforms.

UPDATE:我认为您可以更改为MVC项目类型,通过在.csproj文件.将这些文件与现有文件进行比较,并更改不同的文件,确保复制/备份文件.

<ProjectGuid>{B99EC98A-1F09-4245-B00D-5AF985190AA9}</ProjectGuid>
<ProjectTypeGuids>{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Update 2:你不会影响你的项目,也不会对它有很大的影响.如果你对此感到不自在,就做个备份,四处玩玩.如果您遇到更改,您将始终拥有备份.一开始我对此表示怀疑,但很高兴我走上了MVC的道路.

Asp.net相关问答推荐

内容根路径在 .NET 6 中如何工作?

格式化 DataBinder.Eval 数据

解析器错误消息:文件/TestSite/Default.aspx.cs不存在

如果站点在 localhost 或 127.0.0.1 上运行,如何判断 ASP.NET MVC 视图

判断会话是否为空

无法让嵌套在 UpdatePanel 中的 WebControl 中的 ScriptManager.RegisterStartupScript 工作

在 C# 中将 IHtmlContent/TagBuilder 转换为字符串

AddDefaultTokenProviders:它是什么以及如何使用那些默认提供者?

如何使用 ASP.Net MVC 路由来路由图像?

在生产中使用 LocalDb 是否正常?

将 Http 请求读入字节数组

使 Web.config 转换在本地工作

使用 Ninject OWIN 中间件在 OWIN 启动中注入 UserStore

对 ASP.NET 2.0 网页进行单元测试的最佳方法是什么?

ServiceStack 示例应该以什么顺序被理解?

如何在 ASP.NET 中通过 LAN 访问您的网站

当用户在文本框中按 Enter 键时执行按钮单击事件

ASP.NET MVC NonAction 含义

URL 路由、图像处理程序和潜在危险的 Request.Path 值

Application_End global.asax