public static void RegisterRoutes(RouteCollection routes)
{
routes.Add("test",new TRoute());
}
//基于路由检查信息
public class TRoute:RouteBase
{
public override RouteData GetRouteData(HttpContextBase httpContext)
{
if (httpContext.Request.UserAgent.Contains("Chrome"))
{
return null;//一切正常
}
else
{
RouteData routeData=new RouteData(this,new MvcRouteHandler());
//RouteData routeData = new RouteData(this, new T2Route());
routeData.Values.Add("controller", "Login");
routeData.Values.Add("action", "Index");
return routeData;
}
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
return null;
}
}
public class T2Route:IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new RouteHandler();
}
}
public class RouteHandler : IHttpHandler
{
public bool IsReusable => true;
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
context.Response.Write(File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web.config")));
}
}