【问题标题】:ASP.Net MVC ControllersASP.Net MVC 控制器
【发布时间】:2023-04-05 00:40:02
【问题描述】:

我在我的 MVC Web 应用程序中定义了 MVC 控制器。我在控制器中定义了 5 个不同的动作名称。所有动作都在做不同的事情。

我想要做的是在 global.asax 中定义一个通用的 MVC 路由,而不是 5 个不同的 MVC 路由。我在 global.asax 文件中定义的一条路线。

routes.MapRoute(
           "Action1/1", // Route name
           "xyz/check-data1", // URL with parameters
           new { controller = "CheckDate", action = "Check1" } // Parameter defaults
       );

我在这里需要 5 条不同的路线,因为这 5 条不同的路线在我的网页中将被称为 5 个超链接。

我不想复制和粘贴上面的路线并创建 5 条不同的路线。 例如我可以像下面这样定义另一条路线。

routes.MapRoute(
           "Action2/2", // Route name
           "xyz/check-data2", // URL with parameters
           new { controller = "CheckDate", action = "Check2" } // Parameter defaults
       );

请在这方面给我建议。

【问题讨论】:

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


    【解决方案1】:

    典型的模式是标准化您的操作,以便它们可以使用默认路由:

    /{Controller}/{Action}/{id?}
    

    如果您不打算使用标准操作,那么您别无选择,只能单独手动指定路线。

    但是,有一个名为 AttributeRouting 的 nuget 包,可让您使用属性指定操作本身的路由。如果您要处理大量自定义路线,这通常更容易、更流畅。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      相关资源
      最近更新 更多