У меня есть страница asp.net со следующей разметкой:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ValidationSummary ID="validationSummary" runat="server" EnableClientScript="true" HeaderText="Errors list:" />
<asp:DynamicValidator runat="server" ID="gridViewValidator" ControlToValidate="gridView" Display="None" />
<asp:GridView ID="gridView" runat="server" DataSourceID="GridDataSource" OnRowCommand="gridView_RowCommand">
<Columns>
<asp:DynamicField DataField="column1" />
<asp:DynamicField DataField="column1" />
<asp:DynamicField DataField="column1" />
<asp:Button ID="btnSave" Text="Save" runat="server" CommandName="CustomSave" CausesValidation="true" />
</Columns>
</asp:GridView>
<asp:DynamicLinqDataSource ID="dynamicLinqDataSource" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
Когда пользователь нажимает кнопку сохранения, мой пользовательский обработчик команд вызывает SubmitChanges
и сохраняет данные из сетки в базу данных.Иногда (например, проверочное ограничение нарушено) сохранение завершается неудачей, а исключение - «trows».Все исключения базы данных генерируются на более высоком уровне как исключение базы данных, которое заключено в ValidationException
.Итак, я ожидаю, что текст исключения будет показан в ValidationSummary
как метка с сообщением об исключении, но мое приложение аварийно завершает работу, и я вижу страницу ошибки приложения.Итак, как обработать ValidationException
со слоя базы данных и отобразить сообщение об исключении в ValidationSummary
элементе управления без сбоя приложения?Может понадобится дополнительная настройка?