如何使用自定义路由设置routes.MapRoute?

时间:2013-05-23 09:34:21

标签: asp.net-mvc asp.net-mvc-3 c#-4.0

使用asp.net MVC 3,我有Global.asax

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

我希望路线来自CustomRouteHandler。

public class CustomRouteHandler : IRouteHandler
{
    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        CustomHttpHandler handler = new CustomHttpHandler(requestContext);
        return handler;
    }
}

如何更改我的路线.MapRoute代码?

2 个答案:

答案 0 :(得分:1)

使用:

routes.Add(new Route("CustomPath", new CustomRouteHandler()));

或者:

RouteTable.Routes.Add(new Route("CustomPath", new MvcRouteHandler()));

答案 1 :(得分:1)

Routes.MapRoute实际上只是一种速记方法。如果您有自定义处理程序而无法使用快捷方式,则必须使用add - 方法:

Route specialroute= new Route("path", new CustomRouteHandler());
routes.Add("special", specialroute);