متد GetControllerInstance بهتره به صورت زیر اصلاح بشه:
و موجب میشه تا در صورت یافت نشدن منبع، به جای هدایت به صفحهی NotFound.html، خطای Page not found رخ بده.
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType) { if (controllerType == null) { throw new HttpException(404, $"Resource not found : {requestContext.HttpContext.Request.Path}"); } if (!typeof(IController).IsAssignableFrom(controllerType)) { throw new ArgumentException($"{controllerType} is not a subclass of ControllerBase"); } return ObjectFactory.Container.GetInstance(controllerType) as Controller; }
چون با کدی مثل زیر به مشکل بر میخوره:
<customErrors mode="On" defaultRedirect="/Content/GeneralErrorPage.html"> <error statusCode="404" redirect="/Content/NotFound.html"/> </customErrors>
و موجب میشه تا در صورت یافت نشدن منبع، به جای هدایت به صفحهی NotFound.html، خطای Page not found رخ بده.
رفتار صحیح در سورس خود MVC هم وجود داره که من کمی اصلاحش کردم.