Я нашел еще один вопрос, опубликованный здесь, который обеспечил решение первой части моего вопроса, а именно, как создать страницу 404 в ASP.NET MVC БЕЗ , перенаправляющую на другую страницу (поэтому изначально запрашивалсяURL-адрес остается в адресной строке).
ASP.NET MVC - Как создать страницу 404, аналогичную той, что в StackOverflow
protected void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
Response.Clear();
var httpException = exception as HttpException;
var routeData = new RouteData();
routeData.Values.Add("controller", "Error");
if (httpException != null)
{
routeData.Values.Add("action", httpException.GetHttpCode() == 404 ? "NotFound" : "Unknown");
// clear the error, otherwise, we will always get the default error page.
Server.ClearError();
// call the controller with the route
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
}
Сторона 404 вещейу меня работает нормально, если я не использую IOCControllerFactory, но как только я do использую фабрику, код ошибки в global.asax
не используется, и вместо этого я получаю следующую ошибку:
IControllerFactory 'MyNamespace.IOCControllerFactory' не вернул контроллер для имени 'blah'.
Как мне обойти это, не прибегая к избавлению от моего контроллеразаводаи создание конструктора без параметров для каждого из моих контроллеров?