かみそりの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">
}
@Roman Pokrovskijこれは古すぎるかもしれませんが、エリアにリダイレクトしたい場合は次のようにする必要があります。
return RedirectToPage ( "/Page", new { Area = "AreaName" } );
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