MVC是由asp.net演变过来的,只是说他增加了路由,我们这里先初步定义一个来实现最简单的路由
1:我们先新建一个一般处理程序 Portal,然后继承IHttpHandler接口,然后实现里面的 ProcessRequest(HttpContext context) 这个方法。这里我们通过 content去获取当前的地址(Url),根据地址的参数去判断我们应该去访问那一个类下面的哪一个方法。
比如当前的Url是这样:http://localhost:3527/?c=member&a=Index,那么我们就是去访问 member这个类下面的Index方法,
下面就是实现的代码:
public void ProcessRequest(HttpContext context)
{
//问需求 ?? 后面的是默认值,就是为null时就为它
var controllerName = context.Request.QueryString["c"] ?? "Home";
//根据你的需求找到
IController controller=null;
switch (controllerName.ToLower())
{
case "member":
//找到一个处理member请求的对象
controller = new MemberController();
break;
case "product":
//找到一个处理product请求的对象
controller = new ProductController();
break;
default:
break;
}
//确保找到了一个控制器
if (controller == null) {
//利用http的状态码告诉你要找的人不存在
throw new HttpException(404,"Not Found");
}
//已经找到
controller.Execute(context);
}
上面的代码让我们找到了对应的类,然后我们在去 实现 MemberController这个类,并且找到我们要实现的方法
public void Execute(HttpContext context)
{
this.context = context;
var actionName = context.Request.QueryString["a"] ?? "Index";
switch (actionName.ToLower())
{
case "index":
Index(); //调用该方法
break;
default:
break;
}
}
然后我们在去实现 Index这个方法
public void Index() {
context.Response.Write("大哥赶紧来");
}
这样就实现了一个简单的路由。