如何解决ASP .NET Ajax UpdatePanel Sys.WebForms.PageRequestManagerParserErrorException
|| 我搜索了,然后搜索了..并搜索了。我在这里和其他论坛上看到过很多关于类似问题的帖子。但是,他们似乎都没有帮助。我已经在下面发布了相关的ASP和VB代码(请原谅我这不是我的选择)。如果查看vb代码,您会注意到我正在建立链接\“ \“ Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器接收到的消息。此错误的常见原因是通过调用Response.Write(),响应过滤器,HttpModules或服务器跟踪启用了响应。详细信息:\'7.180 / test / Members / Widget / bob \'> leader de \'附近解析错误。\“<asp:UpdatePanel ID=\"updatePanel\" runat=\"server\">
<Triggers><asp:AsyncPostBackTrigger ControlID=\"searchBtn\" EventName=\"Click\" /></Triggers>
<ContentTemplate>
<asp:HiddenField ID=\"focusTab\" runat=\"server\" Value=\"\" />
<div id=\"tabs\" class=\"tabsContainer\">
<ul>
<li id=\"c2Link\"><a href=\"#c2Tab\">bill</a></li>
<li id=\"intelLink\"><a href=\"#intelTab\">bob</a></li>
<li id=\"manLink\"><a href=\"#manTab\">man</a></li>
<li id=\"firesLink\"><a href=\"#firesTab\">fire</a></li>
<li id=\"protLink\"><a href=\"#protTab\">joe</a></li>
<li id=\"sustLink\"><a href=\"#sustTab\">jill</a></li>
</ul>
<div id=\"c2Tab\" class=\"panel\">
<asp:Label ID=\"c2Results\" runat=\"server\" Text=\"No results found in this category.\"></asp:Label>
</div>
<div id=\"intelTab\" class=\"panel\">
<asp:Label ID=\"intelResults\" runat=\"server\" Text=\"No results found in this category.\"></asp:Label>
</div>
<div id=\"manTab\" class=\"panel\">
<asp:Label ID=\"manResults\" runat=\"server\" Text=\"No results found in this category.\"></asp:Label>
</div>
<div id=\"firesTab\" class=\"panel\">
<asp:Label ID=\"firesResults\" runat=\"server\" Text=\"No results found in this category.\"></asp:Label>
</div>
<div id=\"protTab\" class=\"panel\">
<asp:Label ID=\"protResults\" runat=\"server\" Text=\"No results found in this category.\"></asp:Label>
</div>
<div id=\"sustTab\" class=\"panel\">
<asp:Label ID=\"sustResults\" runat=\"server\" Text=\"No results found in this category.\"></asp:Label>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<span class=\"kwSearchHdr\">Search (seperate keywords w/comma)</span>
<asp:TextBox ID=\"kwSearchTxt\" runat=\"server\" CssClass=\"kwSearchBx\"/>
<span class=\"dateHdr\">From/To Date</span>
<asp:TextBox ID=\"fromDateTxt\" runat=\"server\" CssClass=\"fromDate\"/>
<asp:TextBox ID=\"toDateTxt\" runat=\"server\" CssClass=\"toDate\"/>
<asp:Button ID=\"searchBtn\" runat=\"server\" Text=\"Search\" CssClass=\"searchBtn\"/>
VB代码:返回的字符串,附加到一个标签上
Private Function buildResultStr(ByVal result As AdvisorInsightView) As String
Dim resultsStr As String = \"\"
Dim baseUrl As String = \"./WidgetViewInsight.aspx?Insight={0}\"
Dim text As New TextFunctions
Dim snippet As String = \"\"
Dim member As New JCISFAMember(Convert.ToInt16(result.Author))
resultsStr += \"<p>- <a href=\'\"
\'resultsStr += Page.ResolveUrl(String.Format(baseUrl,result.InsightID))
resultsStr += \"\' style=\'font-size:11;\' >\"
resultsStr += result.Subject & \"</a>,\"
resultsStr += Convert.ToDateTime(result.PubDate).ToShortDateString() & \",\"
resultsStr += member.GetAuthorDetails() & \"<br />\"
snippet = text.stripRichTextFormatting(result.Observation)
If snippet.Length > MAX_SNIP_LEN Then
snippet = snippet.Substring(0,MAX_SNIP_LEN) & \"...\"
End If
resultsStr += snippet & \"<br />\"
resultsStr += \"<b>Keywords: </b>\"
If result.Keywords.Equals(\"\") Then
resultsStr += \"None.</p>\"
Else
resultsStr += \"<span class=\'keywords\'>\"
Dim keywords As String() = Split(result.Keywords,\",\")
Dim keywordStr As String = \"\"
Dim charCount As Integer = 0
For i As Integer = 0 To keywords.Length - 1
If charCount + keywords(i).Length >= 75 Then
keywordStr += \"...\"
Exit For
End If
Dim url As String = \"bob\" \' \"./SearchResults.aspx?CategoryID=\" & keywords(i)
keywordStr += \"<a href=\'\" & url & \"\'>\" & keywords(i) & \"</a>\"
If i <> keywords.Length - 1 Then
keywordStr += \",\"
End If
charCount += keywords(i).Length
Next
resultsStr += keywordStr & \"</span></p>\"
End If
Return resultsStr
End Function
解决方法
事实证明,问题出在我插入了部分网址或路径(例如href = \“ ./ WebPage.aspx \”)。这会导致浏览器填写网址的其余部分,这是通过写出响应来完成的,因此会引起问题。即为了解决此问题,我必须构建一个完整的uri并将其放入服务器端的href字段中,以便停止并写入响应。
,这在黑暗中是短暂的,但是我使用的自定义控件存在此问题。尝试将其添加到后面的代码中(表单加载),看看是否有区别
Page.Form.Method = \"post\";
Page.Form.Enctype = \"multipart/form-data\";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。