技术开发 频道

自己动手实现Asp.net的MVC框架

  【IT168 技术文档】了解JAVA的人都了解struts框架,是一个典型的mvc框架,早些时候微软也实现了.NET版的MVC,用到了路由技术,由于不开源,好多地方感到有些迷惑,于是有一个想法,为什么不自已写一个MVC的框架呢。

  说到MVC,先说一下JAVA STRUTS的实现和原理,所有的HTTP请求都会连到一个JAVA类,control类,mvc的c模型 (实现HTTP接口),control类跟据页面FORM上的ACTION标记,当然这里的ACTION的值是一个操作类的名字,我们叫它ACTION 类,然后跟据反射用类的名字调用这个类,当然反射调用时也把http请求的内容传进去。然后action类里面跟据请求里面的参数作一定的业务罗辑处理, 处理完之后,把数据内容放在类里面,重定向一个页面。视图显示action里面的处理后的数据。

  知道了MVC的原理,我们现在就用.NET来实现MVC。  

  1,用MVC的话就不用ASP.NET的服务器控件,我们新建一个视图login.aspx,把<%%>里面的东西都去掉只留<%@ Page Language="C#"%>

  代码如下: 

<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>Login</title>
</head>
<body>
    
<form id="form1" action="Login.do" method="post">
        
<input id="Text1" type="text" name="name" /><br />
        
<input id="Text2" type="text" name="pwd" />
        
<input id="Submit1" type="submit" value="submit" />
    
</form>
</body>
</html>

  2,在WEB.CONFIG里面定义一个新的映射,如下,即所类似XXX.do的请求都会被映射到Control.cs这个类上。这里我们可是以把所有的请求转到Control类上作进一步转发。 

<system.web>
        
<httpHandlers>
            
<add verb="*" path="*.do" type="Control"/>
        
</httpHandlers>
0
相关文章