2014-09-30 6 views
0

Я создал страницу /shared/error.cshtml в своих представлениях, чтобы показать более дружественное сообщение об ошибке. однако он не отображается, когда пользователь нажимает на ошибку.MVC пользовательские ошибки не отображаются

Моего файл web.config имеет:

<system.web> 
<customErrors mode="On" /> 

и мой Global.asax.cs имеет:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
    } 

пока сообщение об ошибке я получаю до сих пор основнымов

`Server Error in '/' Application. 

Runtime Error 

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed. 

Details: To enable the details of this specific error message to be viewable on the local server machine, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "RemoteOnly". To enable the details to be viewable on remote machines, please set "mode" to "Off".` 

Что мне не хватает?

+0

Что именно вы пытаетесь достичь? Нет смысла устанавливать в CustomErrors значение «Вкл.», Если вы не укажете страницу пользовательской ошибки, верно? В основном это говорит о том, что произошла ошибка, и была ошибка, отображающая страницу пользовательских ошибок ... – SmartDev

+0

Я хочу, чтобы она перешла к error.cshtml, указанному в общей компоновке. он делает это по умолчанию при создании приложения MVC, но мы построили наши с нуля, поэтому я не знаю, как – LiamHT

+0

У вас должен быть ErrorController с действием, отображающим это представление. И действие должно иметь следующие аннотации: [HandleError (View = "Error", ExceptionType = typeof (Исключение))] – SmartDev

ответ

0

включить пользовательские ошибки в Web.config, добавив следующие строки под

<system.web>: 

<customErrors mode="On" defaultRedirect="/Error"> 
    <error redirect="/Error/NotFound" statusCode="404"/> 
    <error redirect="/Error/InternalServerError" statusCode="500"/> 
</customErrors> 

Примечание: Режим =»Off» Вы можете установить, чтобы отключить пользовательские ошибки, которые могут быть полезны при разработке или отладке. Режим настройки = «RemoteOnly» активирует пользовательские ошибки только для удаленных клиентов,

+0

Это было бы, если бы я указывал свою ошибку контроллеру или любым пользовательским представлениям, которых я не знаю. Я пытаюсь использовать стандартные функции. также, даже когда я это добавляю. Это не работает. При всем уважении слово для формулировки другого ответа на SA не помогает мне, особенно когда они делают что-то более настроенное – LiamHT

0

У вас должен быть ErrorController с действием, отображающим ваше представление об ошибке. И действие должно иметь следующие аннотации:

[HandleError(View = "Error", ExceptionType = typeof(Exception))] 
0

Фигурные его, некоторые динамический контент не был загружен, когда произошла ошибка, поскольку она не использует базовый контроллер, поэтому обработка ошибок бросает ошибку

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