在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
ASP.NET MVC 里面其实是在原来的ASP.NET 基础之上,通过用UrlRoutingModule和MvcHttpHandler来替换了原来web Form处理方式的。 UrlRoutingModule 微软没有开源的,但是我们可以来分析下MvcHttpHandler 实现了:IHttpHandler接口 #region IHttpHandler Members void IHttpHandler.ProcessRequest(HttpContext httpContext) { //MVC真正处理请求的方法 protected virtual void ProcessRequest(HttpContext httpContext) {
protected internal virtual void ProcessRequest(HttpContextBase httpContext) { // Get the controller type // Instantiate the controller and call Execute
可以看到ASP.NET MVC 并不神秘,只是在MvcHandler 这个类里面做了一些处理,明白了这些,我们就可以自己在扩展一些东西,比如 自己在继承MvcHandler类。
至于MVC 的View 部分,其实就是另外一套 输入HTML的技术。 看看View的父类ViewPage : Page, IViewDataContainer 继承了这2个东西 在看看接口IViewDataContainer : ViewDataDictionary ViewData { get; set; } 从字面意识可以知道是 数据字典 ,也就是 View页面上展示的数据 就是来自于这个ViewDataDictionary 在看看 ViewDataDictionary 里面的代码,注意到有这么一个Dictionary<string, object> _innerDictionary 对象,内嵌泛型字典。 呵呵,现在我们就知道在View页面上怎么 绑定数据了,比如 <h2><%= Html.Encode(ViewData["Message"]) %></h2> 这下就知道了 什么意思了撒,Message就是 数据的一个key值,要什么数据只需要晓得 他的Key值,便能知道他的数据。
呵呵,通过以上代码的 分析,大概你也明白了,ASP MVC是个什么样子的,你也许会认为这不过是微软 的一个骗术罢了,并没有什么高明的, 反而失去了,服务器控件的一些优点,我觉得总的来说 还是 缺点大与 优点。
|
请发表评论