0

MVC3 アプリケーション用に Http400To404 ActionResult を使用して ErrorController を作成しました。

ルート テスターは、特定のルートを照合します。それにもかかわらず、次のようなエラーが表示されます。

「パブリック アクション メソッド 'http400to404' がコントローラー 'Xxxxxx.Yyyyyyyyy.Zzzzzzz.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)
  {
   ....
  }

  ...
}

コントローラーを正しく見つけていると思いますが、何らかの理由でアクションの結果が取得されません。URLを無駄にするために次の方法を試しました:

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

あなたが提供できるどんな助けにも感謝します。ありがとう、E.

4

1 に答える 1

0

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

于 2012-04-27T04:52:10.290 に答える