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\";