ScriptManager1.AsyncPostBackErrorMessage 未显示错误消息

ScriptManager1.AsyncPostBackErrorMessage not showing error message

提问人: 提问时间:11/4/2009 最后编辑:Jason Plank 更新时间:6/29/2012 访问量:3576

问:

我一直使用以下两段代码(用于工作)来捕获 Ajax。asyncPostBackError

<asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" />

protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e) 
{ 
ScriptManager1.AsyncPostBackErrorMessage = e.Exception.Message; 
}

但是现在,即使在此事件处理程序函数中捕获了未处理的异常,并且设置了异常消息,无论异常消息是什么,我总是在警报框中的页面中收到相同的错误报告,说:AsyncPostBackErrorMessage

Error: Sys.WebForms.PageRequestManagerParserErrorException: The message recieved from the server could not be parsed. Common causes for this error are when the response is modified by calls to the Respnse.Write() ....

该错误与遇到未处理的异常且未连接事件处理程序方法时遇到的错误相同。asyncPostBackScriptmanger'sasyncPostBackError

无论我做什么,我都会收到相同的错误。是什么原因导致的?

asp.net ScriptManager PageRequestManager AsyncPostBackError

评论


答:

0赞 vagfot 11/16/2009 #1

从 VS 2005 升级到 VS 2008 后,我似乎遇到了同样的问题。 我使用以下代码:

if (e.Exception is LandingPageUIExceptionInvalidMSISDN)
{
    msgresolved = "ErrorPopUpInvalidNumber";
    ScriptManager.GetCurrent(Page).AsyncPostBackErrorMessage = msgresolved;
}

以便处理异常并显示正确的错误消息。当在 JavaScript 中执行以下操作时,会在客户端正确分配:AsyncPostBackErrorMessage

var ErrorPopUpDivID = e.get_error().message;
alert(ErrorPopUpDivID);

这不是我签署的.它曾经也对我有用。我将尝试弄清楚它是否可能是 .NET 3.5 问题。ErrorPopUpDivIDAsyncPostBackErrorMessage

最后,以下 3 行 JavaScript 解决了我的问题:

var ErrorPopUpDivID = e.get_error().message;
var re = new RegExp("Sys.*: ", "g");
ErrorPopUpDivID = ErrorPopUpDivID.replace(re, "");
3赞 jcj80 6/29/2012 #2

这可能是一个黑暗中的镜头,但可能在调用函数后会发生全局异常处理。如果该异常处理正在对错误页面执行 a,则脚本管理器将无法解析发回的 HTML。ScriptManager1_AsyncPostBackErrorserver.transfer

这发生在我的一个网站上,并通过将 Server.ClearError() 添加到函数来解决。这会阻止调用函数。ScriptManager1_AsyncPostBackErrorGlobal.Application_Error

评论

0赞 Culme 10/14/2015
我遇到了这个确切的问题,上面的答案为我解决了它。
0赞 Michael Adamission 2/19/2018
哇,谢谢,就是这样。这可能需要几个小时才能罚款。