Как изящно обрабатывать CreateController DefaultControlFactory - PullRequest
1 голос
/ 11 октября 2011

У меня есть несколько ссылок на моей странице, для которых еще не созданы контроллеры. У меня есть фабрика пользовательских контроллеров, подобная этой:

 public class MyControllerFactory : DefaultControllerFactory
    {

        public override IController CreateController(RequestContext requestContext, string controllerName)
        {
            try
            {
                IController controller = base.CreateController(requestContext, controllerName);
                HttpContext.Current.Items["Controller"] = controller;
                return controller;
            }
            catch { return null; }
        }

    }

Это прекрасно работает, пока он может найти контроллер. Однако я выбрасываю желтый экран смерти, если возвращаю ноль из моего метода. Как я могу изящно справиться с этим? Я хочу перенаправить на какую-нибудь страницу вместе с 404 красиво отформатированным сообщением или, возможно, показать какое-либо сообщение, например «В процессе».

1 Ответ

1 голос
/ 11 октября 2011

Вы пытались добавить это?

[HandleError(ExceptionType = typeof(NullReferenceException), Order = 1, View = "NotFound")]

вам нужно будет добавить представление NotFound в папку общих представлений.Аннотируйте фабрику вашего контроллера этим атрибутом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...