【问题标题】:Mapping controllers/action in route table在路由表中映射控制器/动作
【发布时间】:2018-02-02 12:13:45
【问题描述】:

是否需要将所有控制器/动作映射到应用程序中MapRoute函数中的路由表?

如果不是这样,那么它们是如何添加到路由表中的?

【问题讨论】:

  • 除非你想要特定的路线(默认路线会满足大多数情况)

标签: asp.net-mvc routing asp.net-mvc-routing


【解决方案1】:

使用默认的基于约定的路由将涵盖许多情况下的基本路由,尤其是那些不太关心 URL 外观的情况。由于路由表中只有 1 条路由,因此这是性能最佳的选项,并且对于添加到项目中的任何控制器或操作,它都会自动“正常工作”。

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

通常,除了使用MapRoute 方法或[Route] 属性静态添加URL 之外,这意味着它们被编译到应用程序中并且不能在运行时更改。这使得路由可测试,因此可以在发布之前验证配置。

但是,如果目标是制作某种 CMS,其中应用程序可以控制 URL,并且您希望它们在您将记录添加到数据库时自动“上线”,您可以 extend RouteBase 来处理(以及几乎任何其他)路由方案。

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2016-06-18
    • 2013-05-28
    相关资源
    最近更新 更多