私のマシンでは StructureMap が正常に動作しています。すべてがうまく機能します...存在しないリソースをリクエストするまで。404 の代わりに 500 エラーが発生します。
例えば。http://localhost:6969/lkfhklsfhskdfksdf
ネットをチェックしたところ、構造マップコントローラークラスを修正するように言われました。それと喜びをしました!-元のデフォルトの 404 イエロー スクリーン ページ- が表示されます。わかりました、それは私の 500 エラー ページよりも優れています。
しかし、カスタム 404 ページに移動したい :( 正当なコントローラーで悪いアクションを呼び出すと、カスタム 404 ページが表示されます。
私のglobal.asaxには、カスタムルート、デフォルト、最後に404ルートがあります。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Post", action = "Index", id = "" } // Parameter defaults
);
// Invalid/Unknown route.
routes.MapRoute(
"404-ResourceNotFound",
"{*url}",
new { controller = "StaticContent", action = "ResourceNotFound" }
);
これが私の構造マップコントローラーコードです:
public class StructureMapControllerFactory: DefaultControllerFactory {
protected override IController GetControllerInstance(Type controllerType) {
if (controllerType != null) {
return ObjectFactory.GetInstance(controllerType) as Controller;
return base.GetControllerInstance(controllerType);
}
}
何か案は?どうにかしてストラクチャ マップ コントローラ ファクトリをglobal.asax
ルート リストにバブルバックさせる方法はありますか? または、何か本当に悪いことをしたので、他のものを修正する必要があります。
乾杯!