在MVC4使用剑道 UI我有一个网格 ,使Ajax调用数据返回到控制器:
public ActionResult SearchUser_Read([DataSourceRequest]DataSourceRequest request)
{
var data = CreateAnExcaptionHere();
return Json(data.ToDataSourceResult(request));
}
我如何使用这个调用来通知有一个错误的页面?
如果您需要显示来自服务器的错误信息,那么你可以只用了错误的属性集返回DataSourceResult对象做到这一点:
return this.Json(new DataSourceResult
{
Errors = "my custom error"
});
并把它捡起来在客户端上使用这个(由引用.Events(events => events.Error("onError"))
行):
function onError(e, status) {
if (e.status == "customerror") {
alert(e.errors);
}
else {
alert("Generic server error.");
}
}
找到了,剑道只需添加一个事件到数据源的JS函数来调用支持它。 而已。
.DataSource(dataSource => dataSource
.Ajax()
.Events(events => events.Error("onError"))
.Read(read => read.Action("SearchUser_Read", "Search").Data("parentModel"))
)
<script>
function onError(e, status) {
alert("A server error has occurred!");
}
</script>
为了扩大德鲁的回答只是一点点:我们通常要在发生错误时回滚在剑道电网的变化也。 否则,如果一个错误被抛出的项目是从网格中删除,例如,它仍然会出现被删除,即使错误被抛出,并显示一条消息。
此功能也将取消在那些使用抛出一个错误的数据源的任何网格的变化:
function onError(e, status) {
// Cancel changes on any grids on the page that are using this data source
$('.k-grid').each(function (item) {
var grid = $(this).data("kendoGrid");
if (e.sender === grid.dataSource) {
grid.cancelChanges();
}
});
if (e.status == "customerror") {
alert(e.errors);
}
else {
alert("Generic server error.");
}
}
尝试引发异常,并检查它是否提示警告信息或不。
对于剑道格,有可能对你有所帮助错误事件。
http://docs.kendoui.com/documentation/getting-started/using-kendo-with/aspnet-mvc/migration/widgets/grid
我们使用Telerik的MVC网格,如果有,而有约束力的任何错误,自动显示警报消息。
http://www.telerik.com/community/forums/aspnet-mvc/grid/exception-handling.aspx
http://www.telerik.com/community/forums/aspnet-mvc/grid/how-to-do-error-handling-in-gridaction-methods.aspx
怎么样
throw new HttpResponseException(HttpStatusCode.BadRequest);