Я пытаюсь настроить собственные страницы ошибок в моем проекте ASP.NET MVC (версия 5.2.3). Я последовал за prescribed setup, но я все еще не могу заставить страницы появляться.Пользовательские страницы ошибок в MVC не обслуживаются
Я попытался проверить страницы, подняв исключение в одном из моих действий с контроллером.
Итак, мои вопросы ...
- Как настроить пользовательские страницы?
- Как настроить тесты для них?
Может ли кто-нибудь помочь мне помочь?
MY Web.config выглядит следующим образом:
<system.web>
<!-- CUSTOM ERRORS: customErrors -->
<customErrors mode="On" defaultRedirect="~/views/errors/error.cshtml" redirectMode="ResponseRewrite">
<error statusCode="401" redirect="~/views/errors/forbidden.cshtml" />
<error statusCode="403" redirect="~/views/errors/forbidden.cshtml" />
<error statusCode="404" redirect="~/views/errors/notfound.cshtml" />
</customErrors>
</system.web>
<system.webServer>
<!-- CUSTOM ERRORS: httpErrors -->
<httpErrors existingResponse="Replace" errorMode="Custom">
<remove statusCode="401" subStatusCode="-1" />
<error statusCode="401" prefixLanguageFilePath="" path="~/views/errors/forbidden.cshtml" responseMode="File" />
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="~/views/errors/forbidden.cshtml" responseMode="File" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="~/views/errors/notfound.cshtml" responseMode="File" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" prefixLanguageFilePath="" path="~/views/errors/error.cshtml" responseMode="File" />
</httpErrors>
</system.webServer>
МОЙ CONTROLLER ACTION выглядит следующим образом:
Вот пример моего контроллера.
public class HomeController : BaseController
{
#region <Actions>
// GET: Home/Index
[HttpGet]
[AllowAnonymous]
public ActionResult Index()
{
TraceHandler.TraceIn(TraceLevel.Info);
var unitOfWork = new AmericaVirtualToursUnitOfWork();
var viewmodel = new HomeIndexViewModel(unitOfWork, User);
// Trying to get the ERROR page to show
throw new ApplicationException("Testing");
TraceHandler.TraceOut();
return View(viewmodel);
}
#endregion
}
Путь к CSHTML файлов является правильным ...
Когда responseMode = "Файл" ...
Это то, что я получаю ...
Вы не должны служить cshtml файлы непосредственно из CustomErrors. –
@ ErikPhilips Хорошо ... это круто. Зачем? А что ты предлагаешь? –