Добавление сообщения об ошибке в сводку проверки из кода позади - PullRequest
6 голосов
/ 06 мая 2011

Я делаю что-то вроде ниже в приложении веб-форм;

protected void button_transfer_search_Click(object sender, EventArgs e) {

    Page.Validate("val1");

    if (!Page.IsValid && int.Parse(txtArrivalDateTrf.Text) + 5 < 10) {
        return;
    }

также, у меня есть следующий код в моем файле aspx;

<div class="search-engine-validation-summary">
    <asp:ValidationSummary ValidationGroup="transfer" runat="server" ShowMessageBox="false" />
</div>

Мой вопрос заключается в том, как добавить сообщение об ошибке на страницу перед возвратом, чтобы сводка проверки могла его получить и отобразить. Я знаю, что мы можем сделать это в MVC легко, но я не понял, как это сделать в веб-формах. спасибо!

1 Ответ

9 голосов
/ 11 апреля 2012

Всякий раз, когда я нахожу эту ситуацию, вот что я делаю:

var val = new CustomValidator()
{
   ErrorMessage = "This is my error message.",
   Display = ValidatorDisplay.None,
   IsValid = false,
   ValidationGroup = vGroup
};
val.ServerValidate += (object source, ServerValidateEventArgs args) => 
   { args.IsValid = false; };
Page.Validators.Add(val);

И в моем ASPX-коде у меня есть элемент управления ValidationSummary, для которого ValidationGroup установлено то же значение, что и vGroup.

Затем, после того как я загрузил столько кодов CustomValidators (или любого другого вида валидаторов), сколько мне нужно, я просто вызываю

Page.Validate()
if (Page.IsValid)
{
    //... set your valid code here
}

Вызов Page.Validate() вызывает лямбда-связанный метод всех вставленных валидаторов с выделенным кодом, и, если они возвращают false, страница становится недействительной и возвращается без выполнения кода. В противном случае страница возвращает допустимое значение и выполняет допустимый код.

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