在ASP.Net MVC到现有的网站项目?

我在Visual Studio 2008 SP1中有一个传统的(哈哈)ASP.Net Webforms Web站点项目 ,我想逐步引入一些MVC功能。

我可以找到关于如何将ASP.Net MVC与WebForms集成的大多数信息都假定使用Web应用程序项目 。 但是,使用ASP.Net MVC功能找到有关如何改造现有ASP.net网站项目的信息似乎是不可能的。

我已经回顾了Scott Hanselman的文章以及他即将出版的书的第13章,这两篇文章都假设了Web应用程序项目类型。

这可能吗? 有没有人有这方面的指导?


对于初学者来说,将MVC添加到webforms项目中非常简单,为了获得MVC中的功能,需要做更多的工作(仍然很容易)。 首先你要确保你参考了组件并且正在使用.Net 3.5。 其次,您可以在当前Web窗体项目中创建控制器文件夹和视图文件夹。 您也可以使用索引操作创建一个简单的控制器。 然后在global.ascx文件中设置/配置路由。 你应该从那里设置。 在这里查看以供参考。

但是,您只能创建带有代码的aspx页面(可以删除这些页面并在标记中输入正确的继承类)。 要真正“转换”你的项目类型,以便你获得MVC和Visual Studio的好处(添加新视图,转到控制器等)将需要一些玩弄。 我最好的建议是在VS 2008中创建一个新的MVC项目和一个新的Web App项目,并以纯文本比较.csproj文件。 有一个很长的字符串值告诉VS项目模板。

相信我这是行得通的。 我之前在我自己的传统项目上做过。 除了试用/错误/消除之外,我不记得我是如何找到项目类型“钥匙”的。 ASP.Net MVC在与webforms相同的项目中发挥出色。

更新:我认为你可以改变为MVC项目类型,它仍然是一个Web应用程序,通过在.csproj文件的PropertyGroup中使用它们。 将这些文件与您拥有的文件进行比较并更改不同的文件夹,确保复制/备份文件。

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

更新2:你不会影响你的项目或影响很大。 如果你不那么容易做出备份和游戏。 如果您遇到更改,您将始终拥有备份。 起初我很怀疑,但很高兴我走下了MVC的道路。


我想我会用Visual Studio 2010 SP1 / NuGet / Scott Hanselman完全不支持的实用程序给出一个更新的答案。

  • 安装MVC3(w / nuget)http://www.asp.net/mvc/mvc3
  • 转到Visual Studio中的“工具”菜单并选择“库包管理器”“包管理器控制台”
  • 一旦出现控制台窗口,将“默认项目”更改为您的webforms项目。
  • 键入“Install-Package AddMvc3ToWebForms”(http://nuget.org/List/Packages/AddMvc3ToWebForms)
  • 这会将所有必需的dll,javascript文件,web.config设置更改等添加到项目中。 如果一切顺利,您应该能够按F5,导航到您网站上的“home”,并查看由mvc呈现的示例表单:“欢迎使用ASP.NET MVC,以完全不受支持的方式升级到NuGet包Hanselman!没有保修!“。


    对于WebSite项目,您只需将控制器添加到App_Code,而不是根。 你会错过一些VS的优点 - 因为它不知道你使用的是没有csproj文件的MVC,但是你会真的得到它的工作。

    只记得从Controller和ViewPage继承,你应该很好。

    链接地址: http://www.djcxy.com/p/62439.html

    上一篇: in ASP.Net MVC into an existing Web Site Project?

    下一篇: WordPress Website is generating random Advertisements in new tab