我的场景是我创建了一个返回Active Directory对象的Web API。
我有这个WEB API函数创建Active Directory用户并创建一个返回包含First Name , Last Name, Email, UserName, Etc.
的Active Directory对象的用户。如果出现错误怎么办?我将如何处理?
我正在使用Kendo Grid InLine Edit http://demos.kendoui.com/web/grid/editing-inline.html
我想将错误消息显示为弹出窗口
我该怎么办?
选项
尝试捕获错误并将Active Directory对象放入 例外???
抛出响应并收到错误消息并在Kendo Grid中显示
// HttpResponseMessage msg = new HttpResponseMessage(HttpStatusCode.OK) // { // Content = new StringContent(string.Format(“No User with ID = {0}。{1}”,businessObject.UserName,ex.InnerException.ToString())), // ReasonPhrase =“数据库中找不到CustomerID!” //}; //抛出新的HttpResponseException(msg);
OR
//var message = string.Format("Error Message: {0}", taskCreateADUser.ADExceptionDescription);
//throw new HttpResponseException(
// Request.CreateErrorResponse(HttpStatusCode.OK, message));
谢谢, MarcLevin
答案 0 :(得分:3)
每当KendoUI通过Ajax绑定时,它依赖于在json响应中发送的序列化版本的ModelState。基本上,如果ModelState无效,返回到窗口小部件的json响应(在这种情况下为网格)将包含如下内容:
{
"Errors":{
"PropA":{
"errors":[
"Error1",
"Error2"
]
},
"PropB":{
"errors":[
"FUBAR"
]
}
}
}
基本上,如果您希望网格对其进行响应,您的WebAPI将需要返回类似的数据结构。
答案 1 :(得分:0)
这与您的选项2有关。您需要将以下内容正确应用于您的特定方案。这只是一个非常简单的响应解析示例,如果检测到错误则显示警报。此示例需要一个包含Items数组的JSON对象。一旦你掌握了基本想法,你肯定可以应用更高级的处理。
$("#grid").kendoGrid({
dataSource: {
schema: {
data: function(data) {
if (data.Items[0].substring(0,37) == "allmyerrormessagesstartwiththisphrase"){
alert(data.Items[0];
} else {
return data.Items;
}
}
},
transport: {
read: "http://myurl.com/something/"
}
}
}
);