2014-11-27 5 views
0

Я кодирую интернет-приложение MVC 5 и хочу узнать, можно ли проверить, есть ли controllerexists, где у меня есть только name из controller?MVC 5 существует контроллер

У меня есть Application_Error функцию, которая получает имя controller при возникновении ошибки, и я хочу, чтобы перенаправить методу индексной controller. Проблема в том, что пользователь может ввести имя controller, которого не существует, и перенаправление на этот controller приводит к бесконечному циклу.

Заранее спасибо.

ответ

0
var tempRequestContext = new RequestContext(Request.RequestContext.HttpContext, 
              new RouteData()); 
tempRequestContext.RouteData.DataTokens["Area"] = ""; 
tempRequestContext.RouteData.DataTokens["Namespaces"] = "YourCompany.Controllers"; 
var controller = ControllerBuilder.Current.GetControllerFactory() 
      .CreateController(tempRequestContext, "ControllerName"); 

if(controller != null) 
{ 
    //TODO: Redirect 
} 
+0

В настоящее время, если контроллер не существует, я получаю исключение. Единственный способ проверить, существует ли контроллер для проверки того, выбрано ли исключение? – user3736648

+0

Все, что я изменил из вашего кода, это заменить «Имя контроллера» на требуемое имя контроллера. Это все, что нужно сделать? – user3736648

+0

Вам также необходимо изменить пространство имен – overflowed

Смежные вопросы