浅析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
相关文档:
1.bin添加引用ChineseConverter.dll
2. 添加using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
string strTest = "繁體字";
Response.Write(string.Format("繁体输出:{0}<br/>", ChineseConverter.Convert(strTest, ChineseCon ......
PlaceHolder 控件使您可以将空容器控件放置到页上,然后在运行时动态地将子元素添加到该容器中。
一、背景
PlaceHolder Web 服务器控件使您可以将空容器控件放置到页内,然后在运行时动态添加、删除或依次通过子元素。该控件只呈现其子元素;它不呈现自身的任何标记。
例如, ......
RadioButton 控件和 RadioButtonList 控件使用户能够从一小组互相排斥的预定义选项中进行选择。
一、功能
可以使用 CheckBox 控件和 CheckBoxList 控件执行以下操作:
·当选中某个单选按钮时引起页回发。
·当用户选中某个单选按钮时捕获用户交互。
&middo ......
昨天就业部一美女老师在QQ上逮到我,问我是不是做过VBScript,并不由分说把我QQ告诉了一个在外地工作的学生,让她来咨询我,没办法了,硬着头皮找找解决方法。
原来这位软件工程师所在的项目组要做一个“跟微软差不多的远程Web界面连接”,大概项目经理是这么安排的:“他说用Javascript实现的功能没有那么 ......
标签:xml .net [推送到技术圈]
loveqq2004
<?xml version="1.0" encoding="utf-8" ?>
<files>
<file>
<name>4.dll</name>
&nb ......