атрибут, кажется, не действует вообще

То, что вы видите здесь, это копирование массива. В основном JS делает это

a = [1,2,3];
b = a;
a.push(4);
// a == b == [1,2,3,4]

, но если вы хотите сделать копию, чтобы b не изменялось, когда a вам нужно сделать распространение

a = [1,2,3];
b = [...a];
a.push(4);
// a == [1,2,3,4], b == [1,2,3]
11
задан Tomas Aschan 8 February 2009 в 00:55
поделиться

4 ответа

Две полезных вещи знать:

По умолчанию, HandleError ничего не делает при выполнении под сервером разработки. Намерение состоит в том, чтобы показать разработчикам более полезную информацию:

public virtual void OnException(ExceptionContext filterContext) {
    if (filterContext == null) {
        throw new ArgumentNullException("filterContext");
    }

    // If custom errors are disabled, we need to let the normal ASP.NET
    // exception handler execute so that the user can see useful
    // debugging information.
    if (filterContext.ExceptionHandled
        || ! filterContext.HttpContext.IsCustomErrorEnabled) {
        return;
    }

Обратите внимание, что этот случай точно что customError как предполагается, управляет. При установке customError="On" не изменяет это поведение:

  1. Проверьте свой синтаксис.
  2. Удостоверьтесь, что Вы редактируете Web.config в корне проекта, не том в Представлениях.
  3. Не удостоверьтесь никакие кодовые наборы HttpContext.IsCustomErrorEnabled.
  4. Если все остальное перестало работать, попытайтесь выключить отладку в Web.config

Во-вторых, там определенные типы ошибок, который HandleError никогда не будет обрабатывать, особенно ошибки компиляции ASP.NET. Вы не говорите, с какой ошибкой Вы встречаетесь.

13
ответ дан 3 December 2019 в 06:23
поделиться

Необходимо указать что страницу перенаправить к также.

<customErrors mode="On" defaultRedirect="Error.aspx" />

Править: Извините/Shared/часть не должна держать пари там, но необходимо сказать MVC который страница отправить пользователя в с Error.aspx. Затем маршрут по умолчанию ищет что-то, призвал совместно использованный Error.aspx.

Было очень поздно!:) Я предполагаю вот почему, что кто-то дал мне минус для ответа!:) По крайней мере, это работает здесь помощник!

3
ответ дан 3 December 2019 в 06:23
поделиться

Я получил ту же проблему, и мне потребовалось два полных дней, чтобы понять это наконец. Оказалось, что я получил ошибку на странице Site.Master, и Error.aspx использовал эту же главную страницу, как и все другие страницы. Очевидно ошибка. aspx не мог справиться с такой ситуацией.

Мое решение состоит в том, чтобы создать определенную страницу Error.master, которая является легкой и не содержит никаких данных модели. Кроме того, я создал статический Error.htm на случай, если из Error.aspx произойдет ошибка. Параметр Web.config выглядит следующим образом:

<customErrors mode="On">
    <error statusCode="500" redirect="Error.htm" />
</customErrors>

Надеюсь, это поможет.

3
ответ дан 3 December 2019 в 06:23
поделиться

Другой причиной этой проблемы может быть ошибка

В шаблоне приложения MVC (созданного VS2008 / VS2008 Express). aspx (сгенерированный VS) использует главную страницу.

Если главная страница обращается к любому ViewData, она выдаст исключение с нулевой ссылкой, тогда error.aspx не будет отображаться.

Используйте этот простой код как свой Error.aspx, он решит проблему (вместе с CustomErrors = On)

<%@ Page Language="C#"  Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>
<%= Model.Exception.Message %>
0
ответ дан 3 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: