12

在这里,我有一个剃须刀 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 文件?

4

4 回答 4

12

@Roman Pokrovskij 这可能太老了,但如果你想重定向到一个区域,你应该:

return RedirectToPage ( "/Page", new { Area = "AreaName" } );
于 2019-02-06T18:53:09.723 回答
9

查看 MS 页面 https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/?tabs=visual-studio

URL 路径与页面的关联由页面在文件系统中的位置决定。下表显示了 Razor 页面路径和匹配的 URL:

文件名路径匹配 URL
-------------------------- ----------
/Pages/Index.cshtml // 或 /Index
/Pages/Contact.cshtml /联系人
/Pages/Store/Contact.cshtml /Store/Contact
/Pages/Store/Index.cshtml /Store 或 /Store/Index

页面的 URL 生成支持相对名称。下表显示了使用 Pages/Customers/Create.cshtml 中的不同 RedirectToPage 参数选择的索引页面:

RedirectToPage(x) 页面
------------------------------------ ---------
RedirectToPage("/Index") 页面/索引
RedirectToPage("./Index"); 页面/客户/索引
RedirectToPage("../Index") 页面/索引
RedirectToPage("Index") 页面/客户/索引
于 2017-09-08T07:48:44.557 回答
5

试试这个;

@using (Html.BeginForm())
{
   <input type="submit" id="Submit">
}
于 2017-08-23T04:09:31.327 回答
1

如果您想在某些操作后重定向到不同的页面:

return Redirect("~/Page/YourAction");
于 2020-12-14T07:32:44.157 回答