知识大全 自己动手实现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.Net MVC框架

逃脱Asp.NetMVC框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET MVC 4框架揭秘

ASP.NETMVC4框架揭秘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第章ASPNET+

知识大全 在ASP.NET里 MVC框架添加AJAX支持

在ASP.NET里MVC框架添加AJAX支持  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言&

知识大全 ASP.Net MVC框架配置与分析

ASP.NetMVC框架配置与分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前几年的时候A

知识大全 ASP.NET MVC框架Beta版技术细节

ASP.NETMVC框架Beta版技术细节  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP

知识大全 ASP.NET MVC 4框架揭秘:默认实现

ASP.NETMVC4框架揭秘:默认实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nbs

知识大全 ASP.NET MVC 4框架揭秘:总体设计

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)小编为大家搜集整理后发布的内容,让我们赶快一起来看一