【发布时间】:2016-09-07 15:59:16
【问题描述】:
在使用 ASP.NET MVC 的 Kendo UI Grid 时,我发现一些令人沮丧的行为,我似乎无法理解或找到任何信息。我有一个网格,它向具有一些服务器端验证的服务器发出kendoGrid.saveChanges() 请求。如果服务器端验证失败,则返回如下结果:
Response.StatusCode = HTTP_BAD_CLIENT_REQUEST; // const int 400
return PartialView("Error/BadRequest");
局部视图只有一些基本的 HTML 用于向用户显示错误信息,网格的数据源错误回调执行以下操作:
function errorCallback(e) {
// Handles explicit Ajax and Kendo DataSource error callbacks
var content = e.responseText || e.xhr.responseText;
// Wrapper around a kendo.ui.Window to display content
Core.Alert.raiseAlert(content);
}
当我在调试模式下运行我的项目,或将项目的发布版本发布到我的本地计算机时,e.xhr.responseText 值被正确填充,即它包含部分视图的 HTML 消息。但是,只要我将它移到生产服务器,e.xhr.responseText 就只包含值"Bad Request",这也是我当前使用的 HTTP 状态代码。我尝试过使用其他状态码,但结果相同(错误名称用作 responseText)。
我觉得这很奇怪的原因是我在另一个项目中为我们公司的内部应用程序做类似的事情,而且效果很好。它们在 Kendo 和 ASP.NET 的相同版本和工具上运行。
谁能指出我直接使用工具或文档、Kendo 或 AJAX,它解释了为什么响应文本没有使用我的部分视图结果或如何将我发送的部分视图结果映射到 xhr.responseText 属性?
编辑:通过尝试不同的错误代码,我发现某些状态代码如 405(不允许)导致返回 IIS 服务器错误 html。所以现在我真的很困惑,为什么在我指定返回值和要返回的视图时,一些状态码只是返回请求的名称,而另一些则返回该错误代码的模板化 HTML?
【问题讨论】:
标签: c# ajax asp.net-mvc kendo-grid