将一个Asp.Net网站改为MVC

背景:   网站已经开发的一部分 主要是Web服务和API  现在要做一些给人看的页面
转载请注明出处 http://www.cnblogs.com/zaiyuzhong/p/add-mvc-in-webapplication.html 

演示方便我就新建一个空白的, 建好后结构如下:

添加一个ashx页面, 在浏览器里查看到熟悉的Hello World.

到现在为止的项目结构,  下面开始就是我们要做的

1. 安装MVC:

个人喜欢用控制台安装:  TOOLS -> NuGet Package Manager -> Package Manager Console  打开控制台窗口

稍等片刻出现 PM> 输入: install-package microsoft.aspnet.mvc (如果需要特定版本如5.0.0 加上 -version 5.0.0)

最终出现成功的提示(Successfully added 'Microsoft.AspNet.Mvc 5.0.0' to ProjectName.).

当然你也可以右键项目 -> Manage NuGet Package -> 搜索mvc -> Install

 安装完成后项目结构:

 

相关的Microsoft.Web.Infrastructure, System.Mvc, System.Razor是不是都粗线了...

2. 添加Controllers, Views文件夹. 如上图我已经添加好了.

3. 添加控制器, 视图. (略) BTW: 在视图最上加上 @inherits System.Web.Mvc.WebViewPage 否则出现如下错误

The view at '~/Views/default/index.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.

如需引用Model则添加@inherits System.Web.Mvc.WebViewPage<Model类>

4. 添加Global.asax 及路由表

  跟我一起来 Ctrl Shift A 选择Global Application Class, 不改文件名大家都知道的.

  路由表有两种(我已知的)

    a. 像Microsoft写好的, Map路由规则: 在 App_Start 文件夹中添加 RouteConfig 类, 实现 void RegisterRoutes(RouteCollection) 方法, //这些类名, 方法名, 写哪应该都是可变的... 不过没测试过, 记得把命名空间中的App_Start删除

    在Application_Start中 AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes);

    b. 根据特性Map路由: 在Application_Start中 RouteTable.Routes.MapMvcAttributeRoutes(); 在controller上添加[RoutePrefix("XXX")]; 在action上添加[Route("XXX")](可重复添加)

至此, 就可以在浏览器中看到Hello World on MVC了, 又可以在熟悉的MVC中玩耍了

posted @ 2014-12-01 15:39  在风里  阅读(491)  评论(1编辑  收藏  举报