浅析ASP.NET Routing对请求的不同处理
在这里我们将讲述ASP.NET Routing对请求的不同处理。文章将从处理机制方面开始讲起,然后讲述监听的过程。希望本文能对大家有所帮助。
ASP.NET Routing是一个通用的组件,它不涉及到任何具体的请求处理方式。如果您需要,也可以自己基于它进行开发——如FubuMvc项目就是这么做的。
首先,如果您需要在项目中使用在ASP.NET Routing的功能,则需要在web.config文件中配置一个HttpModule:
public
static
void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("scripts/{*pathInfo}"); routes.IgnoreRoute("images/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
线程安全的),只不过我们平时不太会去这么做而已。值得注意的是,RouteCollections里的RouteBase对象,它们的顺序是非常重要的。
UrlRouteModule会监听ASP.NET Request Pipelines的PostResolveRequestCache事件,在这个事件中UrlRouteModule会将当前的HttpContext作为参数调用RouteTable.Routes集合的GetRouteData方法。在RouteCollection的GetRouteData方法中,又会依次将HttpContext传入每一个RouteBase对象的GetRouteData方法,如果中途某个RouteBase对象返回了一个非null的结果,则这个结果便会直接返回给UrlRouteModule。
如果UrlRouteModule调用RouteTable.Routes.GetRouteData方法得到了null,则“一切都像没有发生过”。如果GetRouteData方法得到了结果——一个RouteData对象,此时RouteData.Values便会包含请求中捕获到的数据。RouteData中另一个重要的成员便是RouteData.RouteHandler属性,它返回一个IRouteHandler对象。IRouteHandler接口中只有一个方法GetHttpHandler,它接受RequestContext作为参数,并返回一个IHttpHandler对象。如ASP.NET MVC框架在利用ASP.NET Routing时,便会使用MvcRouteHandler来返回一个MvcHandler对象。
不过,UrlRouteModule在得到了IRouteHandler对象之后,并不会直接调用其GetHttpHandler方法,而是判断它是不是ASP.NET Routing自带的StopRoutingHandler类型。StopRoutingHandler是个特殊的IRouteH
相关文档:
使用Gridview绑定数据库中的图片
注:此系列记录在我实际开发中遇到的问题和收藏一些技巧文章。
我们都知道,在Gridview中不能直接去绑定数据库中的图片,我们可以利用HttpHandler很容易的完成这个任务,在这里我记录一下这个过程。
1.上传图片存储到数据库中
在数据库中创建一个表,添加一下3个字段:
步骤一:在Web ......
在Asp.Net提供了三种常用的验证方式:Windows方式是和IIS结合起来可以实现基本、摘要、集成 Windows等身份验证;Passport方式是使用Windows Live ID的帐户来进行统一验证的;Forms方式是使用常见的表单来实现验证。
一、普通实现方式
这种方式是最简单的,只 ......
PlaceHolder 控件使您可以将空容器控件放置到页上,然后在运行时动态地将子元素添加到该容器中。
一、背景
PlaceHolder Web 服务器控件使您可以将空容器控件放置到页内,然后在运行时动态添加、删除或依次通过子元素。该控件只呈现其子元素;它不呈现自身的任何标记。
例如, ......
问题:当一个正在执行中的ASPX页面执行到一半的时候,浏览器中你关闭了这个页面,服务器端对应的这个页面的代码仍然在执行么?
答案:除非你代码里面做了特殊判断,否则仍然正在执行。
注意点:
1、客户端显示页面的时候,后台已经执行完了的页面对象早已经不存在了。当然这时候谈不上服务器段执行不执行的问题了。
2、 ......
昨天就业部一美女老师在QQ上逮到我,问我是不是做过VBScript,并不由分说把我QQ告诉了一个在外地工作的学生,让她来咨询我,没办法了,硬着头皮找找解决方法。
原来这位软件工程师所在的项目组要做一个“跟微软差不多的远程Web界面连接”,大概项目经理是这么安排的:“他说用Javascript实现的功能没有那么 ......