プロジェクトにカスタムエラーページを追加し、次のweb.config
ように参照しました。
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Errors/500.aspx">
<error statusCode="404" redirect="~/Errors/404.aspx" />
<error statusCode="500" redirect="~/Errors/500.aspx" />
</customErrors>
存在しないページを参照すると、404
期待どおりにレンダリングされたページが表示されます。
ただし、次のPOST
コントローラーメソッドにバグがあります。
CheckRenewalEligibility(string uprn);
これを呼び出すボタンをクリックしても何も起こりません。Chromeで開発ツールを開くと、次のことがわかります。
次に、強調表示CheckRenewalEligibility
された赤をクリックしてプレビューを表示すると、カスタムエラーページが表示されます。
私の質問は、500
エラーが明らかに発生しているのに、なぜこれがフロントエンドでレンダリングされないのか、なぜ何もしないのかということです。
Errors
パスに両方のカスタムエラーページのaspxバージョンとhtmlバージョンがあることに注意してください。
あなたが抱えている問題は、AJAXを介してリクエストを行うためです。これらの場合、サーバー側のエラーでは、エラーページがレンダリングされますが、ユーザーには表示されません。これがAJAXの性質です。
AJAXの実行方法を指定していないので、人気のあるjQueryを使用していると思います。jQueryを介したajaxリクエストについては、この回答をご覧ください-サーバー側のエラーをキャプチャする方法を説明しています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加