|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
语言是不是不是最重要的?在ASP.NetMVC框架中是利用地点拦阻的,固然很好用,可是装起来太年夜了,设置也贫苦。本文经由过程代码理论,在ASP.Net2.0框架下完成一套浅易的MVC框架。MVC框架难于构建的中央在于Controller与View的分别和分别后数据能够便利地传输。为了坚持代码的简便,将利用ashx文件作为Controller,用aspx页面作为View。讲起来对照费力,把项目文件放下去,而上面只作一个复杂的申明。项目是VS2008的项目,巨细15K。
下载地点:DotNetMVC.rar
起首构建一个Controller基类。
以下为援用的内容:
Controller类
/**
*author:yurow
*http://birdshover.cnblogs.com
*description:
*
*history:createdbyyurow2009-9-207:30:04
*/
usingSystem.Web;
usingSystem.Web.Services;
namespaceDotNetMVC.MVC{
///<summary>
///把持器
///</summary>
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
publicabstractclassController<T,K>:IHttpHandler{
///<summary>
///以后哀求
///</summary>
protectedMyRequestRequest;
///<summary>
///输入
///</summary>
protectedHttpResponseResponse;
///<summary>
///前往到View页面的数据
///</summary>
protectedMvcViewData<T,K>ViewData;
///<summary>
///把持器称号
///</summary>
privatestringcontrollerName;
///<summary>
///把持器操纵办法
///</summary>
publicabstractvoidAction();
///<summary>
///实行哀求
///</summary>
///<paramname="context"></param>
publicvoidProcessRequest(HttpContextcontext){
Request=context.Request;
Response=context.Response;
//这里能够用反射的体例举行带参数的操纵,这里为了简化,往失落了这部分
//MethodInfomethod=this.GetType().GetMethod("Action",newType[0]);
//if(method==null){
//thrownewNotImplementedException("没有完成!");
//}
//objectdata=method.Invoke(this,null)asobject;
ViewData=newMvcViewData<T,K>();
Action();
context.Items.Add("MvcViewData",ViewData);
context.Server.Transfer("~/View/"+ControllerName+".aspx",false);
}
///<summary>
///把持称号,不设置默许为View页面与把持器称号同名
///好比,在Login.ashx哀求中,默许挪用View/Login.aspx的页面作为显现页面。
///当登录乐成后,设置其为LoginOK,则会挪用View/LoginOK.aspx
///</summary>
protectedstringControllerName{
get{
if(string.IsNullOrEmpty(controllerName))
returnthis.GetType().Name;
returncontrollerName;
}
set{
controllerName=value;
}
}
publicboolIsReusable{
get{
returnfalse;
}
}
}
}
Controller在ProcessRequest办法中挪用aspx页面,内里设置了一个虚办法Action在详细的ashx文件中重载。
上面是Default.ashx.cs文件的写法
以下为援用的内容:
Default
singDotNetMVC.MVC;
namespaceDotNetMVC{
///<summary>
///$codebehindclassname$的择要申明
///</summary>
publicclassDefault:Controller<string,string>{
publicoverridevoidAction(){
}
}
}
在Controller中,另有两个主要的器材一个是传送给View数据用的,一个是显现哪一个View的(经由过程ControllerName这个属性)
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。 |
|