知识大全 自己动手实现Asp.net的MVC框架
Posted 知
篇首语:满堂花醉三千客,一剑霜寒十四洲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 自己动手实现Asp.net的MVC框架相关的知识,希望对你有一定的参考价值。
自己动手实现Asp.net的MVC框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
了解JAVA的人都了解struts框架 是一个典型的mvc框架 早些时候微软也实现了 NET版的MVC 用到了路由技术 由于不开源 好多地方感到有些迷惑 于是有一个想法 为什么不自已写一个MVC的框架呢
说到MVC 先说一下JAVA STRUTS的实现和原理 所有的HTTP请求都会连到一个JAVA类 control类 mvc的c模型 (实现HTTP接口) control类跟据页面FORM上的ACTION标记 当然这里的ACTION的值是一个操作类的名字 我们叫它ACTION 类 然后跟据反射用类的名字调用这个类 当然反射调用时也把请求的内容传进去 然后action类里面跟据请求里面的参数作一定的业务罗辑处理 处理完之后 把数据内容放在类里面 重定向一个页面 视图显示action里面的处理后的数据
知道了MVC的原理 我们现在就用 NET来实现MVC
用MVC的话就不用ASP NET的服务器控件 我们新建一个视图login aspx 把﹤%%﹥里面的东西都去掉只留﹤%@ Page Language= C# %﹥
代码如下
﹤%@ Page Language= C# %﹥﹤!DOCTYPE PUBLIC //W C//DTD XHTML Transitional//EN transitional dtd ﹥﹤ xmlns= ﹥﹤head runat= server ﹥﹤title﹥Login﹤/title﹥﹤/head﹥﹤body﹥﹤form id= form action= Login do method= post ﹥﹤input id= Text type= text name= name /﹥﹤br /﹥﹤input id= Text type= text name= pwd /﹥﹤input id= Submit type= submit value= submit /﹥﹤/form﹥﹤/body﹥﹤/﹥
在WEB CONFIG里面定义一个新的映射 如下 即所类似XXX do的请求都会被映射到Control cs这个类上 这里我们可是以把所有的请求转到Control类上作进一步转发
﹤system web﹥﹤Handlers﹥﹤add verb= * path= * do type= Control /﹥﹤/Handlers﹥
实现Control cs这个类 新建一个Control类 让他继承 IHttpHandler接口 这个接口里面有两一个属性和一个方法 bool IsReusable get; //如果 System Web IHttpHandler 实例可再次使用 则为 true 否则为 false
void ProcessRequest(HttpContext context);// 启用 HTTP Web 请求的处理 可以接收到页面的请求内容 里面主要包括Request Response 等 方便我们接收参数和页面转发
Control cs代码如下
using System;using System Data;using System Configuration;using System Web;using System Web Security;using System Web UI;using System Web UI WebControls;using System Web UI WebControls WebParts;using System Web UI HtmlControls;using System Reflection;/// ﹤summary﹥/// HTTP 的摘要说明/// ﹤/summary﹥public class Control: IHttpHandlerpublic Control()public bool IsReusablegetreturn true;public void ProcessRequest(HttpContext context)HttpRequest req = context Request;string path= req CurrentExecutionFilePath;int index = path LastIndexOf( / );string path = path Substring(index + );string actionName = actiondo Substring( actiondo Length );//这里就能得到页面form信息里面的字符Login//以上几行代码主要是得到action的名字 //利用反射调用action 比如请求页面现在Type type = Type GetType(actionName);Object kk = Activator CreateInstance(type); type GetMethod( Execue ) Invoke(kk new object[] context );//Execue是Login cs里面的一个方法 用于接收请求 处理数据
现在我们要建一个处理具本业务的action类即Login cs
代码如下
using System;using System Data;using System Configuration;using System Web;using System Web Security;using System Web UI;using System Web UI WebControls;using System Web UI WebControls WebParts;using System Web UI HtmlControls;using System Collections;public class Loginpublic Login()public void Execue(HttpContext contex)//处理具体的业务罗辑和数据操作 并重定向到指定页面 //一般是处理出来的数据保存到模型里面 方便视图调用数据显示 contex Response Redirect( OK aspx );
我们现在建一个数据模型Person 可以保存和返回数据集 即MVC里面的M
using System;using System Data;using System Configuration;using System Web;using System Web Security;using System Web UI;using System Web UI WebControls;using System Web UI WebControls WebParts;using System Web UI HtmlControls;using System Collections;namespace Person/// ﹤summary﹥/// Model 的摘要说明/// ﹤/summary﹥public class Personpublic Person()privatestring _id;privatestring _name;publicstring Idget return _id; set _id = value; publicstring Nameget return _name; set _name = value; publicDataTabledtget set
OK aspx里面显示处理后的数据显示 可以用person里面的dt属性返回数据按asp显示数据的方法显示出
cha138/Article/program/net/201311/11626相关参考
逃脱Asp.NetMVC框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NETMVC4框架揭秘 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章ASPNET+
在ASP.NET里MVC框架添加AJAX支持 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言&
ASP.NetMVC框架配置与分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前几年的时候A
ASP.NETMVC框架Beta版技术细节 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP
ASP.NETMVC4框架揭秘:默认实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
ASP.NETMVC4框架揭秘:总体设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章&n
知识大全 ASP.NET MVC 4框架揭秘:ControllerFactory[2]
ASP.NETMVC4框架揭秘:ControllerFactory[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
知识大全 ASP.NET MVC 4框架揭秘:ControllerFactory[1]
ASP.NETMVC4框架揭秘:ControllerFactory[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
知识大全 ASP.NET MVC 4框架揭秘:Controller(1)
ASP.NETMVC4框架揭秘:Controller(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一