Как правило, каждый раз, когда вы отлаживаете или разрабатываете веб-сайт с динамическими данными, нужно перейти в файл Site.master и установить для атрибута ScriptManager EnablePartialRendering значение false:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="false"/>
Это сделает исключения более очевидными, которые в противном случае кажутся скрытыми из-за использования панелей обновления, которые обертывают вокруг DetailsView, FormViews и GridViews в шаблонах страницы List / Edit / Insert / Details / ListDetails. *
Я думаю, что настоящая проблема, с которой вы столкнулись, связана с обработкой ошибок и обновлением панелей. При отладке в IE вы видите маленький восклицательный знак в левом нижнем углу экрана? Если это так, щелкните по нему, и вы увидите ошибку javascript (Sys.WebForms.PageRequestManagerServerErrorException), возникшую из-за необработанного исключения.
Подробнее об этом читайте в блоге ScottGu на тему .
@ Комментарий Аарона: слишком рано улавливать ошибки, на которые он ссылается. Я думаю, что в этом сценарии он хочет обработать событие Updated, потому что EntitydataSource фактически не сгенерирует исключение до тех пор, пока он не даст возможность обработчикам этого события выполнить: ( MSDN ):
Если ошибка возникает, когда изменения
сохраняется в источнике данных,
Обновленное событие поднято и
Исключительная собственность
EntityDataSourceChangedEventArgs
объект устанавливается на возвращаемый
Исключение. Если вы обрабатываете исключение
в обновленном обработчике событий установите
Свойство ExceptionHandled равно true.
Это предотвращает исключение
поднял снова. Когда вы указываете значение
ложь для исключения
свойство, EntityDataSource
повторно поднимает исключение.