web-dev-qa-db-ja.com

asp.netコアカミソリページにリダイレクトする方法(ルートなし)

かみそりの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ファイルに移動することは可能ですか?

6
user6781613

ビューでこれを試してください。

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

@Roman Pokrovskijこれは古すぎるかもしれませんが、エリアにリダイレクトしたい場合は次のようにする必要があります。

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

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 /Contact
/Pages/ Store/Contact.cshtml /Store/Contact
/Pages/Store/Index.cshtml/Storeまたは/Store/Index

ページのURL生成では、相対名がサポートされます。次の表は、Pages/Customers/Create.cshtmlのさまざまなRedirectToPageパラメーターで選択されているインデックスページを示しています。

 RedirectToPage(x)ページ
 ------------------------ ----------- ---------- 
 RedirectToPage( "/ Index")Pages/Index 
 RedirectToPage( "./ Index"); Pages/Customers/Index 
 RedirectToPage( "../ Index")Pages/Index 
 RedirectToPage( "Index")Pages/Customers/Index 
4
S. Aziz Kazdal