Согласно ошибочно указанному «дубликату», при нажатии кнопки проверка не выполняется. Обратная передача продолжается без каких-либо препятствий при проверке поведения. Я думал, что мне ясно об этом, когда я сказал «страница все еще публикует» но, очевидно, я был неправ.
Это не должно так смущать, но я потерян.
У меня есть несколько RequiredFieldValidator
элементов управления на моей странице, в которых я не указываю InitialValue
, поэтому валидаторы не смогут проверить, если значение ControlToValidate
пусто ( согласно документации ).
Однако, страница все еще публикуется, даже с пустыми значениями (хотя Page.IsValid
в этом случае возвращает false).
<div class="form-group">
<label class="col-md-3 control-label">Registered Name</label>
<div class="col-md-9">
<asp:TextBox runat="server" ID="RegisteredName" CssClass="form-control" />
<asp:RequiredFieldValidator runat="server" ID="RegisteredNameRequiredFieldValidator" ControlToValidate="RegisteredName" ErrorMessage="*" ForeColor="Red" />
</div>
</div>
<div class="col-md-12">
<asp:Button runat="server" ID="Save" Text="Save" CssClass="btn btn-primary" OnClick="Save_Click" CausesValidation="true" />
</div>
Вот код бэкенда:
protected async void Save_Click(object sender, EventArgs e)
{
try
{
if (Page.IsValid)
{
// Save the form data to the database.
var company = await SaveCompany();
await SaveCompanyMeta(company);
await SaveBankingDetails(company);
await SaveContacts(company);
await SaveShareholders(company);
// Indicate that the operation processed successfully.
var msg = $"Company details for new company {company.RegisteredName} have been saved. Redirecting to company list...";
ShowSnackbar(msg, "/Companies");
}
}
catch (Exception ex)
{
ShowSnackbar(ex.Message);
}
}
Теперь я более чем счастлив оставить это как есть, учитывая, что он по-прежнему предотвращает отправку поврежденных данных в базу данных, но проблема заключается в том, что это ничего не указывает на пользовательском интерфейсе. с.
Я пошел и построил это более или менее в соответствии с asp.net-tutorials.com , но мне не повезло заставить его работать правильно. Я что-то пропустил? Почему при сбое проверки не отображаются ошибки на странице?