我在我的機器上已經可以正常工作了。一切都很好......直到我請求一個不存在的資源。而不是404,我得到一個500錯誤。ASP.NET MVC和StructureMap有問題
例如。我們被告知fix my structuremap controller class。做到了,歡樂!我現在得到 - 原始默認的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" }
);
這裏是我的structuremap控制器代碼:
public class StructureMapControllerFactory: DefaultControllerFactory {
protected override IController GetControllerInstance(Type controllerType) {
if (controllerType != null) {
return ObjectFactory.GetInstance(controllerType) as Controller;
return base.GetControllerInstance(controllerType);
}
}
任何想法是有一些方法我可以以某種方式獲取結構圖控制器發? ctory回到global.asax
路由列表中?或者我做了一些非常糟糕的事情,需要修復其他一些東西。
乾杯!
我現在實際上在5個站點工作:(重新創建一個,4個是新的。(另外,用你的代碼,我也曾經這樣做過。當你得到一個url的時候會發生什麼:http :// localhost:12345/sfsfkasfhasklfla(例如你的本地主機和端口,然後是一個與任何控制器都不匹配的uri。你的StructureMapControllerFactory是否會拋出異常? – 2009-06-02 00:35:38