1

我无法在我的 MVC 应用程序中获取数据以异步更新,但我对 .net 应用程序中的相同代码没有任何问题。这是一个链接到数据库的简单网格视图,我想每隔几秒钟更新一次网格视图中的数据,而无需重新加载整个页面。它在 .net 应用程序中完美运行,但在 MVC 中出现以下错误:

“JavaScript 运行时错误:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器接收到的消息。”

实际页面是静态的,不会更新。如果我使用标准回发触发器,错误就会消失,但我不想使用回发触发器,因为它只会导致整个页面重新加载。

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Livebids</title>
    <script runat="server">
    protected void OnTimerIntervalElapse(object sender, EventArgs e)
    {
        GridView1.DataBind();

    }

    protected void Page_Load(object sender, EventArgs e)
    { CurrentTime.Text = DateTime.Now.ToLongTimeString(); }



</script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:Label ID="CurrentTime" runat="server"></asp:Label>
    <asp:ScriptManager ID="ScriptManager1" runat="server"/>       
    <asp:Timer runat="server" ID="ctlTimer"
                    Interval="1000" OnTick="OnTimerIntervalElapse" />   
    <div>

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                    DataSourceID="SqlDataSource1">
                    <Columns>
                        <asp:HyperLinkField DataNavigateUrlFields="Item_URL" DataTextField="Item" 
                            Target="_blank" />
                        <asp:BoundField DataField="Bid" HeaderText="Bid" SortExpression="Bid" />
                        <asp:BoundField DataField="BPM" HeaderText="BPM" SortExpression="BPM" />
                    </Columns>
                </asp:GridView>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:qbrdataConnectionString2w %>" 
                    ProviderName="<%$ ConnectionStrings:qbrdataConnectionString2w.ProviderName %>" 
                    SelectCommand="SELECT livebids.ID, livebids.ProductName, Max(livebids.BidPrice) AS 'Bid', count(livebids.Tstamp) AS 'BPM', scrape1_scraped.Item_URL, scrape1_scraped.item  FROM livebids , scrape1_scraped WHERE livebids.ID =  scrape1_scraped.ID AND livebids.Tstamp &gt;= now() - interval 1 minute AND livebids.BidPrice &gt; 0 group by livebids.ID ORDER BY scrape1_scraped.End_Time ASC limit 40;">
                </asp:SqlDataSource>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ctlTimer" EventName="Tick" />
            </Triggers>
        </asp:UpdatePanel>

    </div>
    </form>
</body>
</html>

这在 asp.net 中运行良好,但是 MVC 我得到错误并且没有回发的数据更新。

4

0 回答 0