如何重定向到 asp.net 核心剃刀页面(无路由)
How to redirect to a asp.net core razor page (no routes)
我这里有一个razor cs页面:
public IActionResult OnPost(){
if (!ModelState.IsValid) {
return Page();
}
return RedirectToPage('Pages/index.cshtml');
}
还有一个 cshtml 页面:
@page
@using RazorPages
@model IndexModel
<form method="POST">
<input type="submit" id="Submit">
</form>
我想重定向到表单提交时的同一页面,但我一直收到 400 错误。是否可以在不使用路由的情况下进行重定向,只转到 url?
中的 cshtml 文件
在视图中尝试这个;
@using (Html.BeginForm())
{
<input type="submit" id="Submit">
}
查看 MS 页面
https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/?tabs=visual-studio
URL 路径与页面的关联由页面在文件系统中的位置决定。以下 table 显示了一个 Razor Page 路径和匹配的 URL:
File name path matching URL
--------------------------- ----------------------
/Pages/Index.cshtml / or /Index
/Pages/Contact.cshtml /Contact
/Pages/Store/Contact.cshtml /Store/Contact
/Pages/Store/Index.cshtml /Store or /Store/Index
URL 页面生成支持相对名称。下面的table表示选择了哪个Index页面,不同的RedirectToPage参数来自
Pages/Customers/Create.cshtml:
RedirectToPage(x) Page
------------------------ ---------------------
RedirectToPage("/Index") Pages/Index
RedirectToPage("./Index"); Pages/Customers/Index
RedirectToPage("../Index") Pages/Index
RedirectToPage("Index") Pages/Customers/Index
@Roman Pokrovskij
这可能太旧了,但如果你想重定向到一个区域,你应该:
return RedirectToPage ( "/Page", new { Area = "AreaName" } );
如果您想在执行某些操作后重定向到其他页面:
return Redirect("~/Page/YourAction");
我这里有一个razor cs页面:
public IActionResult OnPost(){
if (!ModelState.IsValid) {
return Page();
}
return RedirectToPage('Pages/index.cshtml');
}
还有一个 cshtml 页面:
@page
@using RazorPages
@model IndexModel
<form method="POST">
<input type="submit" id="Submit">
</form>
我想重定向到表单提交时的同一页面,但我一直收到 400 错误。是否可以在不使用路由的情况下进行重定向,只转到 url?
中的 cshtml 文件在视图中尝试这个;
@using (Html.BeginForm())
{
<input type="submit" id="Submit">
}
查看 MS 页面 https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/?tabs=visual-studio
URL 路径与页面的关联由页面在文件系统中的位置决定。以下 table 显示了一个 Razor Page 路径和匹配的 URL:
File name path matching URL --------------------------- ---------------------- /Pages/Index.cshtml / or /Index /Pages/Contact.cshtml /Contact /Pages/Store/Contact.cshtml /Store/Contact /Pages/Store/Index.cshtml /Store or /Store/Index
URL 页面生成支持相对名称。下面的table表示选择了哪个Index页面,不同的RedirectToPage参数来自 Pages/Customers/Create.cshtml:
RedirectToPage(x) Page ------------------------ --------------------- RedirectToPage("/Index") Pages/Index RedirectToPage("./Index"); Pages/Customers/Index RedirectToPage("../Index") Pages/Index RedirectToPage("Index") Pages/Customers/Index
@Roman Pokrovskij 这可能太旧了,但如果你想重定向到一个区域,你应该:
return RedirectToPage ( "/Page", new { Area = "AreaName" } );
如果您想在执行某些操作后重定向到其他页面:
return Redirect("~/Page/YourAction");