当前位置: 首页 > 工具软件 > MyMVC > 使用案例 >

MyMVC一

元鸿波
2023-12-01

  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("大哥赶紧来");
        }

这样就实现了一个简单的路由。

 

 类似资料: