如何重定向到asp.net核心剃刀页面(没有路由)

时间:2017-08-23 04:03:20

标签: c# asp.net-core razor-pages

这里有一个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文件?

4 个答案:

答案 0 :(得分:6)

@罗马·波克洛夫斯基 这可能太旧了,但是如果您要重定向到某个区域,则应该:

return RedirectToPage ( "/Page", new { Area = "AreaName" } );

答案 1 :(得分:4)

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

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

  

/Pages/Index.cshtml /或/ Index

     

/Pages/Contact.cshtml / Contact

     

/Pages/Store/Contact.cshtml / Store / Contact

     

/Pages/Store/Index.cshtml / Store或/ Store / Index

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

  

RedirectToPage(x)Page

     

RedirectToPage(&#34; / Index&#34;)Pages / Index

     

RedirectToPage(&#34; ./索引&#34);页/客户/索引

     

RedirectToPage(&#34; ../ Index&#34;)Pages / Index

     

RedirectToPage(&#34;索引&#34;)页面/客户/索引

答案 2 :(得分:3)

在视图中尝试此操作;

@using (Html.BeginForm())
{
   <input type="submit" id="Submit">
}

答案 3 :(得分:0)

如果要在执行某些操作后重定向到其他页面:

return Redirect("~/Page/YourAction");