【问题标题】:Cannot navigate to Pages in a .Net Core 3.1 app无法导航到 .Net Core 3.1 应用程序中的页面
【发布时间】:2020-03-03 17:14:14
【问题描述】:

我正在查看一个 .Net Core 3.1 项目,它有一个控制器和一堆页面。我无法导航到任何页面。为了解释我的问题;我已将此方法添加到控制器中:

public async Task<IActionResult> Test()
        {
            return RedirectToPage("/Error");
        }

如果我通过浏览器导航到 Test 方法而不是重定向到错误页面;在看似无限循环的情况下调用测试方法,即多次调用该方法,直到出现“ERR_TOO_MANY_REDIRECTS”页面。我认为这意味着存在路由问题,但我不确定。该项目的结构如下:

Controllers
Models
Pages 
    Error.cshtml

这是一个 .Net Core 3.1 项目。我以前从未见过一个带有 Pages 文件夹的项目(它通常说是 Views),因此也是这个问题的原因。我花了最后一个小时在谷歌上搜索,但一无所获,因此是这个问题的原因。我正在使用 .Net Core 3.1。

【问题讨论】:

  • 您能发布您的错误页面代码吗?我猜那个页面也有重定向。
  • Razor Pages 是 ASP.NET Core 2.0 中引入的一种新型 Web 应用。它没有控制器或视图。在 ASP.NET Core 3 中,它成为 Web 应用程序的默认类型
  • @w0051977 没有解释项目是如何创建或修改的。如果您看到 Pages 文件夹,则表示这是一个 Razor Pages 网络应用程序。它不使用控制器。默认的Error.cshtml 也不包含Hello。你在检查别人的项目吗?
  • @w0051977 因为您使用的是 .NET Core 3.1,所以只需使用 dotnet new webapp 创建一个新的 Web 应用程序并检查文件。
  • @Kavinci,是的,就是这样,即缺少 AddRazorPages(我以前从未使用过 Razor 页面)。如果您想发布答案,那么我会给予一些信任。

标签: c# asp.net-core .net-core


【解决方案1】:

在 Startup.cs 文件中,需要配置 Razor 页面中间件以启用 Razor 页面的路由。

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages()
}

看起来错误路由上的无限循环有 2 个部分。

  1. Test 的路由被重定向到每个控制器的 /Error
  2. /Error 没有路由重定向到 /Error 导致无限循环,直到运行时停止执行并抛出上述错误。

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2019-06-02
    • 2021-05-13
    • 2020-11-07
    • 2013-04-17
    • 1970-01-01
    相关资源
    最近更新 更多