Request.RequestContext.RouteData.Values是获取路由配置中参数的值.
如过路由配置是:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}/{type}", // 带有参数的 URL
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
type= UrlParameter.Optional
} // 参数默认值
);
}
则可以用这个语句获取参数:Request.RequestContext.RouteData.Values["id"].ToString()
和Request.RequestContext.RouteData.Values["type"]'
但是不能获取 Request.RequestContext.RouteData.Values["name"]的参数因为,"name"不在路由配置中.并且生成的url会把name参数放到"?"后.
如: http://loclahost/home/index/123/typename?name=gou
获取不在路由配置中的参数值用:Request.QueryString["name"]