使用一般处理程序,模拟ASP.NET MVC,开发一个轻量级的学习版MVC框架。
本篇博文是笔者学习MVC的总结
有人说MVC是一种设计模式,有人说MVC是一种框架,还有人说MVC是一种思想.
这里是整个项目的文件结构,模型层可以根据需求选用EntityFramework或者直接使用原生的ADO.NET,封装一个SQLHelper,再写一个实例化任意Model的方法.
这里是index.ashx,网站的单一入口点,网站所有的请求都要通过index.ashx处理
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Web;
using MVCFrameWork.Controllers;
namespace MVCFrameWork
{
/// <summary>
/// index 的摘要说明
/// </summary>
public class index : IHttpHandler
{
//关于HttpContext:在处理请求执行链的各个阶段中,
// 会有一个对象在各个对象之间进行传递,
// 也即会保存请求的上下文信息,
// 这个对象就是HttpContext对象
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
C(context); //实例化任意控制器,并执行该控制器中的任意动作
}
private static void C(HttpContext context)
{
string controllerName = (context.Request["C"] as string ?? "Home").ToLower();//获取HTTP请求中的控制器
con