RedirectToPage("Companies")
は/Pages/Companies.cshtml
にリダイレクトされます(ASP.NET MVCコントローラーから)
しかし、このページにリダイレクトしたい場合はどうでしょう/Areas/MyArea/Pages/Companies.cshtml
?
それらすべてと他の多くは動作しません:
RedirectToPage("/MyArea/Companies.cshtml")
RedirectToPage("MyArea/Companies.cshtml")
RedirectToPage("./MyArea/Companies.cshtml")
RedirectToPage("/MyArea/Companies")
RedirectToPage("MyArea/Companies")
RedirectToPage("./MyArea/Companies")
「ページが見つかりません」というエラーが表示されることがあります。 「Razorページの外にURLを生成するために、先頭に「/」を付けてルート相対パスを指定する」というメッセージが表示されることがあります。 Pages
フォルダはありません。私はこれがすべてのルールを再び変えることができることを知っています。
追伸プレーンな.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);で構成されたRazorページ。特定のルーティングは追加されません。
RouteValuesを表すオブジェクトを受け取るRedirectToPageのオーバーロード を使用します。
return RedirectToPage("/Companies", new { area = "MyArea" });
'/'
は、コントローラー(またはRazorページの外部)でRedirectToPage
を使用する場合に必要です。それ以外の場合は必要ありません(ただし機能します)。
これは私にとってはうまくいきます:
return RedirectToPage("/Companies", new { area = "MyArea" });
プレーン.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
の下で動作します。特定のルーティングは設定されていません。
これは人気の質問になると思います...マイクブリングのおかげで、彼は私に道を教えてくれます。
追伸Pagesフォルダがある場合-すべてのルールがもう一度変更されます。それが、「Razor Pages」が「MVCマジック」を使い果たす方法です。