继上一篇MVC & Entity Framework(1)- 开发环境之后,已经很久没更新了。接下来记录一下怎么把MVC中的controller单独拆为一个类库,然后在web项目中引用。另外,顺便尝试把Models中的实体类也拆为一个单独的类库。
1、Controller类库项目
①添加一个普通的类库(.Net Framework4.5)
②在PM控制台输入以下命令Nuget命令安装MVC的引用——这里直接在项目的“引用”那里右键“添加引用”,效果是一样的。
这里指定版本号4.0.20710.0,主要是为了与新建MVC 4 Web项目时自动引用的类库版本一致。可在Web项目的packages.config中查看得到。
Install-package Microsoft.AspNet.Mvc -Version 4.0.20710.0
③在上面的类库中添加一个Controllers文件夹,然后在此文件夹添加类,命名规范为xxxController。类继承Controller,其它的写法并无二异。
④在Web中添加该类库项目的引用,并修改RouteConfig增加namespaces参数,以修改注册路由指定Controller的命名空间。
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Stock", action = "Index", id = UrlParameter.Optional }, namespaces: new string[] { "Ivan.ControllerService.Controllers" } ); } }
2、Models类库项目
新建一个类库项目,然后添加两个文件夹:Models和ViewModels。前者与数据库中的表相对应,后者主要是由Models组合而成,方便UI层面与数据逻辑层的交互处理。
考虑到使用Entity Framework,输入以下PM命令。
install-package EntityFramework -version 5.0
完成后,可看到项目的引用多了两个dll,如下:
至此,就可以像上一篇中提到的那样,正常创建DataContext了