【问题标题】:.Net Core looking through Views instead of Pages.Net Core 通过视图而不是页面查看
【发布时间】:2019-03-05 17:48:15
【问题描述】:

我的项目面向 .NET Core 2.1。我从 Framework 迁移,因此从 Razor Views 更改为 Pages。当您访问整个 URL(控制器/视图)时,这些页面似乎工作正常,但是当我尝试创建一个用于请求根地址的登录页面时,找不到我的页面。似乎 MVC 正在查看错误的目录。

有问题的错误是:

InvalidOperationException:未找到视图“索引”。搜索了以下位置:/Views/Main/Index.cshtml /Views/Shared/Index.cshtml /Pages/Shared/Index.cshtml

我的路线代码只是:

route.MapRoute("root", "", new
    { controller = "Main", action = "Index" });

希望为此找到一些指针。

【问题讨论】:

  • 我相信您不允许使用控制器/动作路由来处理到网络核心页面的默认(空)路由。默认情况下,index 页面呈现在空 url 上,您可以覆盖它 (exceptionnotfound.net/…) 通过提供带有控制器/动作映射的路由,您可以有效地告诉运行时找到空 url 的控制器/动作。
  • @WiktorZychla 你是对的,我刚刚在网上找到了一个类似的来源。如果你回答了,我会把它标记为正确的。非常感谢你。 :)
  • 不是Pages 类似于WebPages - 它是一个基于文件 的系统,而不是controllersviews

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


【解决方案1】:

对于任何可能发现自己在谷歌上搜索类似内容的人,您将能够像这样覆盖 ConfigureServices() 中的 Razor 页面选项:

services.AddMvc().AddRazorPagesOptions(options =>
{
    options.Conventions.AddPageRoute("/Home/Index", "");
});

【讨论】:

    猜你喜欢
    • 2016-10-07
    • 2019-08-14
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多