【问题标题】:Creating a routing in .NET Core 2.2 MVC application在 .NET Core 2.2 MVC 应用程序中创建路由
【发布时间】:2020-03-08 03:54:56
【问题描述】:

我不知道如何在启动文件中配置路由。

当您重定向到具有另一个控制器的视图时,URL 看起来不像:

localhost/Success/Success/Success

第一个 Success 是控制器,第二个 Success 是 View 文件夹,第三个 Success 是 View 本身的名称。

我想要这样的东西:

localhost/Sucess/Sucess

控制器的名称未显示在 URL 中。

我在导航页面中使用的不是链接,而是重定向:

return Redirect("Success/Success/Success");

startup.cs:

routes.MapRoute(name: "success", template: "{controller=Success}/{action=Index}/{id?}");

【问题讨论】:

  • 无法理解您的问题,为什么会有查看文件夹Success? MVC 将根据视图名称和控制器自动查找视图。
  • 如果我不创建文件夹“Success”,它就找不到页面...
  • 确认你的页面名称匹配动作名称,并且视图文件夹名称匹配控制器名称。另外,您的描述有SucessSucess,这看起来很奇怪。

标签: c# asp.net-mvc razor routing asp.net-core-2.2


【解决方案1】:

试试这个:

routes.MapRoute(
                name: "default",
                template: "{controller=Success}/{action=Index}/{id?}");

【讨论】:

  • 但我想保持默认为控制器主页。但是使用 Success 控制器添加另一个路由
  • 我明白了,试试这个:routes.MapRoute(name: "success", template: "success/{controller=Success}/{action=Index}/{id?}");跨度>
【解决方案2】:

试试这个 - 您可以有多个路线,但请注意它们是特定于订单的。

      routes.MapRoute(
            name: "default1",
            template: "{controller=Success}/{action=Index}/{id?}");

      routes.MapRoute(
            name: "default2",
            template: "{controller=Home}/{action=Index}/{id?}");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 2021-03-23
    相关资源
    最近更新 更多