gpt4 book ai didi

asp.net - 母版页的 Page_Load 方法触发两次

转载 作者:行者123 更新时间:2023-12-02 05:07:43 25 4
gpt4 key购买 nike

现在我正在处理一个非常简单的 ASP.NET 项目,但遇到了一个我无法理解的问题:由于某种我不知道的原因,当我尝试激活时,我的母版页的 Page_Load 方法会触发两次某一部分。
第一次的值IsPostBack是真的,第二次是假的。我搜索并发现了很多关于这个问题的讨论,但没有一个答案能帮助我解决这个问题。

我该怎么做才能解决这个问题并防止该方法触发两次?

编辑:

嘿,barak 的请求是 Catalog.aspx:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Catalog.aspx.cs" Inherits="Catalog" Title="Untitled Page" Debug="true" %>

::קטלוג מוצרים
מיון המוצרים על פי: חברה, מחיר, דור
<asp:DataList ID="DataListPro" runat="server"
RepeatColumns="3" OnItemCommand="DataListPro_ItemCommand">
<ItemTemplate>
<div Class="Catalog"> &nbsp;<asp:HyperLink ID="HyperLinkName" runat="server" NavigateUrl='<%# String.Format("ProDetails.aspx?id={0}",Eval("idProduct")) %>'
Text='<%# Bind("NameProduct") %>' CssClass="CatalogLink" Font-Names="00264d" Font-Overline="False" Font-Underline="False" Font-Bold="True"></asp:HyperLink>
<asp:Label ID="LblIdProduct" runat="server" Text='<%# Bind("idProduct") %>' Font-Bold="True" Visible="False"></asp:Label><br />
<center><asp:Image ID="Image1" runat="server" ImageUrl='<%# Bind("ProductPic") %>' BorderWidth="0px" Height="100px" Width="100px" style="margin: 10px" /><br />
<strong>
רק ב</strong><asp:Label ID="LabelPrice" runat="server" Text='<%# Bind("price") %>' Font-Bold="True" ForeColor="#0099FF"></asp:Label><strong>
ש"ח!</strong> &nbsp;<asp:LinkButton ID="LinkButtonAddToSal" runat="server" Font-Bold="True" CommandName="AddProduct">הוסף מוצר</asp:LinkButton></center>
</div>
</ItemTemplate>
<ItemStyle BackColor="White" BorderColor="White" />
</asp:DataList>&nbsp;
<div class="pages">
<center>
&nbsp;<asp:LinkButton ID="LinkButtonPrevPage" runat="server" CommandName="PrevPage" OnClick="LinkButtonPrevPage_Click">לעמוד הקודם</asp:LinkButton>
&nbsp;
אתה נמצא בעמוד:
<asp:Label
ID="LabelPageDetails" runat="server"></asp:Label>
&nbsp;
<asp:LinkButton ID="LinkButtonNextPage"
runat="server" CommandName="NextPage" OnClick="LinkButtonNextPage_Click">לעמוד הבא</asp:LinkButton>&nbsp;
</center>
<br />

最佳答案

在某些浏览器中加载两次 asp.net 页面存在问题。我可能值得用多个浏览器重新测试(如果你还没有这样做的话)。

一个原因是图像标签中的空 src 属性,即

<img src="" alt="" />

这个 post给出了更广泛的讨论——最初指向 td 中的背景属性.

在同一篇文章中还有另一个有趣的可能性。指某东西的用途
<%@ Page Language="C#" ... AutoEventWireup="true" ... %>


override protected void OnLoad(EventArgs e) 

在同一页面中,大概也使用 Page_Load可能会导致同样的问题。给出的解决方案是 AutoEventWireup="false"
编辑

查看您的代码,这可能是问题所在
ImageUrl='<%# Bind("ProductPic") %>'

如果这在任何时候评估为
ImageUrl=''

这可能导致 src=""图像问题,这反过来又会导致双重回发

编辑 2

唯一可以想到的其他方法是,如果您调用 Response.Redirect在页面绑定(bind)之后(或任何地方)。这肯定会导致页面加载两次。

关于asp.net - 母版页的 Page_Load 方法触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9160423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com