2012-04-27 5 views
0

MVC3アプリケーションのHttp400To404 ActionResultでErrorControllerを作成しました。ルーティングは私のActionResultメソッドを見つけません

ルートテスターは特定のルートと一致します。

を「公共のアクションメソッド 『http400to404』コントローラで見つかりませんでした 『Xxxxxx.Yyyyyyyyy.Zzzzzz.Controllers.ErrorController』

次のURLのコードです。それにもかかわらず、私は言うエラーが得られます。 :

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
{ 
    string url = "~/Error/Http400To404?Exception=System.Exception%3A%20Failed%20to%20authorized% 20the%20request".ToLower(); 

    filterContext.Result = new RedirectResult(url); 
} 

次はのErrorControllerクラスです:

public class ErrorController : Controller 
{ 
    [HttpGet] 
    [HttpPost] 
    public ActionResult Http400To404(Exception e) 
    { 
    .... 
    } 

    ... 
} 

私はそれが正しくコントローラを見つけることが、いくつかの理由でactioされると信じてn結果は取得されません。私はURLを無駄にするために次の方法を試しました:

string url = urlHelper.RouteUrl("ErrorDefault", 
          new RouteValueDictionary { { "Exception", (new Exception("Failed to authorized the request.")).ToString() }, 
          {"controller","Error"}, 
          {"action", "Http400To404"}}); 

私はあなたが提供できるヘルプを提供します。 ありがとう、 E.

答えて

0

[HttpPost]属性をActionResultから削除します。また、デフォルトでは、アクションはGETとPOSTの両方に応答するので、その場合は属性を指定する必要はありません。

関連する問題