尝试从 ASP.NET Core MVC Razor 中的_Layout 页面重定向时出错
Error when trying to redirect from _Layout page in ASP.NET Core MVC Razor
我是 .NET Core 的新手,曾使用过旧的 .NET 版本,例如 Windows 表单。我在我的 _Layout
页面中设置了一个导航栏,我想用它重定向到其他 Razor 页面。
例如,我的 Views
文件夹中名为 Home
的文件夹中有一个 Home
页面 (index.cshtml
)。如果我想 select 导航栏中的客户搜索选项,我会使用调用下面函数的 onclick 事件。
function SearchClick() {
window.location.href = "CustomerSearchView.cshtml";
return false;
}
CustomerSearchView
位于 Views
中 Home
文件夹下的 CustomerSearch
文件夹中。还有一个 CustomerSearchController
代码
public IActionResult Index()
{
return View();
}
如果我尝试将路径添加到浏览器中,例如 https://localhost:7022/CustomerSearchView.cshtml
,我会收到错误消息
This localhost page can’t be found - no webpage was found for the web address: https://localhost:7022/CustomerSearchView.cshtml
我尝试了各种使用完整路径的变体 Views/CustomerSearch
和其他人,但得到了同样的错误。
我不熟悉路由程序,我不确定我犯了什么错误,我认为这样可以节省时间,如果有人能指出来我会很高兴。
试试这个
function SearchClick() {
window.location.href = "/CustomerSearch/Index";
return false;
}
我通过更正路由并将以下代码添加到我的 program.cs
来解决问题
app.MapControllerRoute(
name: "customersearch",
pattern: "{controller=CustomerSearchController}/{action=Index}/{id?}",
defaults: new { controller = "CustomerSearchController", action =
"Index" });
添加任何带有控制器的新视图时,只需为其添加等效的路由代码,使其对项目可见。
我是 .NET Core 的新手,曾使用过旧的 .NET 版本,例如 Windows 表单。我在我的 _Layout
页面中设置了一个导航栏,我想用它重定向到其他 Razor 页面。
例如,我的 Views
文件夹中名为 Home
的文件夹中有一个 Home
页面 (index.cshtml
)。如果我想 select 导航栏中的客户搜索选项,我会使用调用下面函数的 onclick 事件。
function SearchClick() {
window.location.href = "CustomerSearchView.cshtml";
return false;
}
CustomerSearchView
位于 Views
中 Home
文件夹下的 CustomerSearch
文件夹中。还有一个 CustomerSearchController
代码
public IActionResult Index()
{
return View();
}
如果我尝试将路径添加到浏览器中,例如 https://localhost:7022/CustomerSearchView.cshtml
,我会收到错误消息
This localhost page can’t be found - no webpage was found for the web address: https://localhost:7022/CustomerSearchView.cshtml
我尝试了各种使用完整路径的变体 Views/CustomerSearch
和其他人,但得到了同样的错误。
我不熟悉路由程序,我不确定我犯了什么错误,我认为这样可以节省时间,如果有人能指出来我会很高兴。
试试这个
function SearchClick() {
window.location.href = "/CustomerSearch/Index";
return false;
}
我通过更正路由并将以下代码添加到我的 program.cs
来解决问题app.MapControllerRoute(
name: "customersearch",
pattern: "{controller=CustomerSearchController}/{action=Index}/{id?}",
defaults: new { controller = "CustomerSearchController", action =
"Index" });
添加任何带有控制器的新视图时,只需为其添加等效的路由代码,使其对项目可见。