質問: // get the user id from session or cookie } base.onactionexecuting(filtercontext); } } ありがとう、クリス
回答: 問題のurlを参照するだけでエラーを再現できるかどうかを確認してください。アクションがpostアクションとしてのみ定義されている場合。これを行うと、エラーを自由に再現できます。いずれにしても、次のようにエラーをグローバルに処理できます。ここでhandleunknownactionを参照する別の答えは、不正なコントローラ名ではなく、不正なアクション名を持つurlのみを処理します。次のアプローチは両方を処理します。これをベースコントローラーに追加します(ここではビューコードを省略)。public actionresult error(string errormessage) { return view("error"); // or do something like log the error, etc. } global.asax.csにグローバル例外ハンドラーを追加して、上記のメソッドを呼び出すか、キャッチされた404エラーを処理する他の操作を実行します。void application_error(object sender, eventargs e) { exception ex = server.getlasterror(); // get the exception object httpexception httpexception = ex as httpexception; if (httpexception != null && httpexception.gethttpcode() == 404) // if action not found { string errormessage = "the requested page was not found."; routedata routedata = new routedata(); routedata.values.add("controller", "base"); routedata.values.add("action", "error"); routedata.values.add("errormessage", errormessage); server.clearerror(); response.tryskipiiscustomerrors = true; // go to our custom error view. icontroller errorcontroller = new basecontroller(); errorcontroller.execute(new requestcontext(new httpcontextwrapper(context), routedata)); } }