【问题标题】:How can I route controllers using MVC 6?如何使用 MVC 6 路由控制器?
【发布时间】:2016-08-12 12:23:13
【问题描述】:

我在 VS 2015 Web 应用程序中有两个控制器,我使用 asp 标签助手定义了一个常规菜单来调用每个视图,该菜单中的一个选项使用另一个控件但是总是调用同一个控制器,我不确定如果 MVC 6 现在发生了一些变化。 我正在使用以下路线:

            config.MapRoute(
            name: "Event",
            template: "Event/{action}",
            defaults: new { controller = "Event", action = "Index" }
                );

            config.MapRoute(
            name: "App",
            template: "App/{action}/{id?}",
            defaults: new {controller="App",action="Index"}
                );

【问题讨论】:

  • 我一直遇到的问题,我要称自​​己为“愚蠢”,这是从我使用 asp-controllers 的视图调用控制器时,我没有意识到有一个“s”正确的方法是没有它。保留这个以防万一有人犯同样的错误,我不这么认为,但以防万一。

标签: asp.net-core-mvc asp.net-mvc-controller


【解决方案1】:

根据我的发现,默认情况下,必须使用属性在 MVC 6 中设置路由。有一个 shim(请参阅 http://www.strathweb.com/2015/01/migrating-asp-net-web-api-mvc-6-exploring-web-api-compatibility-shim/)以允许与您尝试的方法兼容。

此页面 (http://www.ryadel.com/en/custom-routing-method-names-in-asp-net-5-mvc-6/) 有点误导,因为它听起来像是在 MapRoute 和/或使用属性之间进行选择。无论如何,它有一些很好的例子。

总结:删除所有对 MapRoute 的调用并在控制器中使用属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多