Как отобразить сообщение об ошибке в asp.net? - PullRequest
1 голос
/ 18 сентября 2009

У меня есть куча текстовых полей и кнопка сохранения, чтобы что-то обновить. Когда я нажимаю Сохранить, у меня есть код, который определяет, правильно ли они заполнены, в коде файла.

Если они заполнены неправильно, я хочу отобразить сообщение об ошибке в виде предупреждения.

Каков наилучший способ сделать это? Нажатие кнопки, очевидно, приводит к обратной передаче страницы, поэтому я подумал о добавлении чего-то в URL, например mypage.aspx?errormessage=blahblah, но я не знаю, является ли это лучшим способом или даже как это сделать ...

Есть предложения?

Ответы [ 7 ]

3 голосов
/ 18 сентября 2009

Модальные оповещения плохие, как и обратные передачи. Постарайтесь проверить как можно больше на стороне клиента без обращения к серверу. См. jQuery Validation plugins для менее навязчивого способа проверки.

1 голос
/ 18 сентября 2009

Вы можете использовать метод ClientScript.RegisterStartupScript () в коде обработки ошибок на стороне сервера, чтобы написать фрагмент JavaScript, который вызывает alert ('message'), что-то вроде этого

private void ShowErrorMessage(string message)
{
    string script = "alert('" + message + "');";
    ClientScript.RegisterStartupScript(typeof(MyPage), "errorScript", script, true);
}

Но я бы порекомендовал вам вместо этого использовать валидатор. Если вы реализуете свой собственный валидатор, вы можете заставить его создавать сценарии на стороне клиента, которые могут выполняться перед отправкой, чтобы вообще избежать обратной передачи.

Хорошая вещь о валидаторах состоит в том, что их сообщения об ошибках могут отображаться в ValidatorSummary на странице, избегая уродливого окна предупреждения.

1 голос
/ 18 сентября 2009

Не могли бы вы использовать CustomValidator для запуска сценария на стороне клиента, который показывает окно предупреждения?

0 голосов
/ 18 сентября 2009

Попробуйте следующий код в событии нажатия кнопки:

string strErr="Error!";//Put your error message here
ClientScript.RegisterStartupScript(GetType(), "scrptName", "javascript: alert('"+strErr+"'); ", true);

Появится предупреждающее сообщение.

В противном случае поместите метку на страницу aspx и установите видимое значение false в событии page_load. При возникновении ошибки в событии кнопки установите видимость метки «true» и заполните текст метки сообщением об ошибке.

0 голосов
/ 18 сентября 2009

Используйте как можно больше валидаторов, они выдают клиенту некоторый javascript, чтобы вы могли выполнить много проверок, используя эти элементы управления, и только после того, как все они будут удовлетворены, он разрешит странице отправить.

Они запускаются при каждой отправке, поэтому, если вы не хотите, чтобы каждое действие отправки вызывало их, вы включаете элементы управления в группу проверки.

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

Затем есть свойство для объявления «сообщения» и элемент управления для отображения всех сообщений валидатора. Все очень круто и встроено прямо в IDE.

Пойдите, проверьте элементы управления валидатора.

0 голосов
/ 18 сентября 2009

Различные элементы проверки ASP.NET (с включенной проверкой на стороне клиента) в сочетании с надлежащими сообщениями об ошибках и / или сводными сообщениями подойдут для большинства сценариев.

Для «ощущения и поведения AJAX» поместить элементы управления в панель обновления также будет легко.

0 голосов
/ 18 сентября 2009

Прежде всего, я не рекомендую показывать пользователю модальное окно предупреждения.

Вы можете вызвать функцию javascript из кода на стороне сервера, и в этой функции вы можете выдать ошибку.

Или вы можете отправить запрос AJAX, и после проверки на стороне сервера вы можете отправить ответ клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...