Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC Ajax.error呈现局部视图_C#_Ajax_Asp.net Mvc_Kendo Grid - Fatal编程技术网

C# MVC Ajax.error呈现局部视图

C# MVC Ajax.error呈现局部视图,c#,ajax,asp.net-mvc,kendo-grid,C#,Ajax,Asp.net Mvc,Kendo Grid,在使用ASP.NET MVC的剑道UI网格时,我发现一些令人沮丧的行为,我似乎无法理解或找到任何相关信息。我有一个网格,它向服务器发出kendoGrid.saveChanges()请求,该服务器具有一些服务器端验证。如果服务器端验证失败,则返回以下结果: Response.StatusCode = HTTP_BAD_CLIENT_REQUEST; // const int 400 return PartialView("Error/BadRequest"); 部分视图只有一些基本的HTML用于

在使用ASP.NET MVC的剑道UI网格时,我发现一些令人沮丧的行为,我似乎无法理解或找到任何相关信息。我有一个网格,它向服务器发出
kendoGrid.saveChanges()
请求,该服务器具有一些服务器端验证。如果服务器端验证失败,则返回以下结果:

Response.StatusCode = HTTP_BAD_CLIENT_REQUEST; // const int 400
return PartialView("Error/BadRequest");
部分视图只有一些基本的HTML用于向用户显示错误信息,网格的datasource错误回调执行以下操作:

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?

结果和解决方案的功劳归于

在做了一些挖掘之后,我发现问题在于IIS在使用错误HTTP状态代码时覆盖了发送的内容(因此部分视图)

解决方案是在web.config中的
system.webServer
中添加一个
标记。我发现以下内容足以让我的部分观点到达客户

<system.webServer>
    <httpErrors existingResponse="PassThrough" />
</system.webServer>