Ошибки маршрута ASP.NET MVC 2 - проблемы при использовании решения Котцака - PullRequest
0 голосов
/ 27 апреля 2011

Я подумал, что было бы проще спросить здесь, где я могу опубликовать некоторый код, чем в комментариях к его решению. Чтобы увидеть его решение, перейдите сюда .

РЕДАКТИРОВАТЬ: некоторый прогресс, но новая ошибка. В моем классе ErrorController я получаю NotImplementedException:

public ActionResult InvokeHttp404(HttpContextBase httpContext)
{
    IKernel kernal = new StandardKernel();
    IController errorController = kernal.Get<ErrorController>();
    var errorRoute = new RouteData();
    errorRoute.Values.Add("controller", "Error");
    errorRoute.Values.Add("action", "Http404");
    errorRoute.Values.Add("path", httpContext.Request.Url.OriginalString);
    errorController.Execute(new RequestContext(
         httpContext, errorRoute)); // <-- here

    return new EmptyResult();
}

В частности, сообщение об исключении:

Элемент модели, передаваемый в словарь, имеет тип 'HandiGamer.WebUI.Controllers.NotFoundViewModel', но для этого словаря требуется элемент модели типа 'System.String'.

Я не уверен, к какому словарю он относится, и MSDN оказался менее чем полезным.

1 Ответ

0 голосов
/ 30 апреля 2011

О Боже, проблема была в том, что я идиот.Я не стал менять свое представление, поэтому он все еще ожидал простой string для своей модели представления, а не NotFoundViewModel.Поскольку IController.Execute() вызывался в сыром виде, он выдавал исключение из-за того, что внутренний словарь представления не был настроен для принятия модели представления.

@ cottsak, спасибо за вашу помощь и терпение.

...