问题描述
|
我正在使用Telerik Extensions for ASP.NET MVC,在网格上使用Ajax数据绑定。我正在整个控制器类上使用HandleError属性,如下所示:
[HandleError]
公共类MyController:控制器
{...
并且错误处理在常规Action方法中可以正常工作。但是,在[GridAction]方法(例如处理新网格记录插入的方法)上,我无法绕开默认使用的“ 500-内部服务器错误”弹出窗口。我希望能够吐出一个异常,以便用户可以看到为什么未插入其记录,但是Telerik GridAction方法和HandleError似乎不想一起玩。
有人去过那里和/或这样做吗?
谢谢,
戴夫
解决方法
我刚刚使用了这个http://www.telerik.com/community/forums/aspnet-mvc/grid/how-to-return-error-information-to-grid-in-ajax-editing-mode.aspx
为我整理了问题。
实际上,我只需要处理网格中的.OnError事件:
.ClientEvents(events => events
.OnLoad(\"onLoad\")
.OnError(\"onError\")
)
)
<script type=\"text/javascript\">
function onLoad(e) {
$(this).find(\'.t-no-data td\').text(\'Loading...\');
}
function onError(e) {
if (e.textStatus == \'error\') {
if (e.XMLHttpRequest.status == \"500\") {
alert(\"The server was unable to process your request.\\n\" + e.XMLHttpRequest.responseText);
e.preventDefault();
}
}
}
</script>
,在以下情况下会引发OnError事件:
找不到所请求的URL(404 HTTP代码)
未处理的.NET异常(500个HTTP代码)
ModelState错误
暂停