有人会问:为什么要实现分离?小项目就不需要进行分离,但是大项目最好还是分离的好,层次更鲜明,看着比较舒服。
结构如下
首要要先建立一个MvcApplication项目,然后新建项添加yang.Leave.Mvc,和yang.Leave.Core类库,并且引用到Web中,然后在web的views中添加文件夹User,并在Mvc下的Controllers添加相应的UserController
然后在Core中添加Helper文件夹和Routeing文件夹,主要是为了匹配路由
在Routing新建一个IRgisterRoutes接口,很简单的代码
interface IRegisterRoutes
{
void RegisterRoutes(RouteCollection Routes);
}
然后新建LeRoutes继承该接口
public class LeRoutes:IRegisterRoutes
{
public void RegisterRoutes(RouteCollection Routes)
{
Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Routes.MapRoute(
"User", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "User", action = "Login", id = UrlParameter.Optional } // Parameter defaults
);
}
}
然后在Helper文件夹下新建一个GlobalApplication 代码也很简单,但需要继承与HttpApplication,并启动
public class GlobalApplication:HttpApplication
{
protected void Application_Start()
{
yang.Leave.Core.Routing.LeRoutes le = new yang.Leave.Core.Routing.LeRoutes();
AreaRegistration.RegisterAllAreas();
le.RegisterRoutes(RouteTable.Routes);
}
}
配置好了之后启动会启动Views/User/Login
需要注意的是在Web中需要添加上面两个类库的引用
上面的两个类库需要引用System.Web.Mvc及Syste.Web.Routing
还有最重要是一点就是要将Global.asax的标记定位到GlobalApplication
将原来的替换成<%@ Application Inherits="yang.Leave.Core.Helper.GlobalApplication" Language="C#" %>
这样才能启动Helper下的GlobalApplication
启动后的效果图
只是随便测试了一下,功能不多,只是希望能对初学者有所帮助,谢谢大家