Подтвердить что ты не робот

Ошибки маршрута ASP.NET MVC 2 - проблемы при использовании решения cottsak

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

EDIT: некоторый прогресс, но новая ошибка. В моем классе 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 был менее полезным.

4b9b3361

Ответ 1

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

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