【问题标题】:ASP.NET MVC customization - Inherit or alter FrameworkASP.NET MVC 自定义 - 继承或更改框架
【发布时间】:2010-11-12 08:35:09
【问题描述】:

如果你想改变处理路由的方式,你可以在 MVC 项目中做到这一点或者你必须改变 MVC 框架吗?

例如,假设您在 Global.asax.cs 的 RegisterRoutes 中有标准代码:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

}

但是让我们说你真正想要发生的是让你的自定义类拦截所有传入的请求并以特殊的方式路由它们。这可以通过从 MVC 框架类继承然后自定义来完成,还是您必须实际更改框架代码?

【问题讨论】:

    标签: .net asp.net-mvc customization maproute


    【解决方案1】:

    扩展,你只需要编写自定义的RouteHandler。

    看看:

    ASP.NET MVC, Manipulating URL Structure

    Developing Custom RouteHandler

    或网络上的其他星球。

    编辑:

    您可以通过扩展 RouteBase 并将其添加到路由中来做更多事情。

    routes.Add("CoolRouter", new CoolRouter());
    

    【讨论】:

    • +1 那么如何告诉您的 MVC 项目使用您的自定义项目而不是标准项目,这是 Web.config 的事情吗?
    • 这里你可以找到例子:stackoverflow.com/questions/755579/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 2012-03-13
    相关资源
    最近更新 更多