我可以在Telerik [GridAction]上使用[HandleError]吗? (Telerik MVC)

时间:2011-04-12 19:24:09

标签: c# .net telerik telerik-grid telerik-mvc

我正在使用Telerik Extensions for ASP.NET MVC,在网格上使用Ajax数据绑定。我在整个控制器类上使用HandleError属性,如下所示:

[的HandleError]
public class MyController:Controller {...

并且错误处理在常规Action方法中正常工作。但是,在[GridAction]方法上,例如处理新网格记录插入的方法,我无法绕过默认使用的“500 - 内部服务器错误”弹出窗口。我希望能够吐出异常,以便用户可以看到为什么他们的记录没有被插入,但是Telerik GridAction方法和HandleError似乎不想一起玩。

有人在那里和/或那样做过吗? 谢谢, 戴夫

2 个答案:

答案 0 :(得分:2)

我刚刚使用了这个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>  

答案 1 :(得分:0)

在以下情况下将引发OnError事件:

  1. 找不到请求的网址(404 HTTP代码)
  2. 未处理的.NET异常(500 HTTP代码)
  3. ModelState错误
  4. 超时