【问题标题】:Error when trying to redirect from _Layout page in ASP.NET Core MVC Razor尝试从 ASP.NET Core MVC Razor 中的 _Layout 页面重定向时出错
【发布时间】:2022-01-11 08:27:27
【问题描述】:

我对 .NET Core 相当陌生,曾在 Windows 窗体等较旧的 .NET 版本上工作过。我在_Layout 页面中设置了一个导航栏,我想用它来重定向到其他 Razor 页面。

例如,我在 Views 文件夹之外的名为 Home 的文件夹中有一个 Home 页面 (index.cshtml)。如果我想从导航栏中选择客户搜索选项,我会使用 onclick 事件来调用下面的函数。

function SearchClick() {
    window.location.href = "CustomerSearchView.cshtml";
    return false;
}

CustomerSearchView 位于ViewsHome 文件夹下的CustomerSearch 文件夹中。还有一个CustomerSearchController有代码

public IActionResult Index()
{
    return View();
}

如果我尝试将路径添加到浏览器中,例如https://localhost:7022/CustomerSearchView.cshtml,则会出现错误

找不到这个 localhost 页面 - 没有找到该网址的网页:https://localhost:7022/CustomerSearchView.cshtml

我已经尝试了使用Views/CustomerSearch 和其他人的完整路径的各种变体,但得到了同样的错误。

我不熟悉路由过程,我不确定自己犯了什么错误,我认为这样可以节省时间询问,如果有人能指出这一点,我会非常高兴。

【问题讨论】:

    标签: redirect asp.net-core-mvc razor-pages


    【解决方案1】:

    试试这个

    function SearchClick() {
        window.location.href = "/CustomerSearch/Index";
        return false;
    }
    

    【讨论】:

      【解决方案2】:

      我通过更正路由并将以下代码添加到我的 program.cs 来解决问题

      app.MapControllerRoute(
          name: "customersearch",
          pattern: "{controller=CustomerSearchController}/{action=Index}/{id?}",
          defaults: new { controller = "CustomerSearchController", action = 
      "Index" });
      

      当使用控制器添加任何新视图时,只需为其添加等效的路由代码,使其对项目可见。

      【讨论】:

        猜你喜欢
        • 2020-05-26
        • 2021-05-16
        • 2020-08-22
        • 2021-02-04
        • 2018-10-21
        • 2019-08-04
        • 2019-08-26
        • 2018-01-31
        相关资源
        最近更新 更多