ASP.NET Page_Load使用不同的IsPostback值触发两次(仅在GOOGLE CHROME上)

3hvapo4f  于 2023-05-02  发布在  .NET
关注(0)|答案(2)|浏览(163)

我有一个www.example。 www.example.com 第一次IsPostback参数具有正确的值,第二次则不正确。 When I click any button, the Page_Load method of the various pages always enters 2 times. The first time the IsPostback parameter has the correct value, and the second it doesn't.
我读到在Page_Load中传递更多次数的应用程序可能会将href或src设置为空,但在我的页面中,我找不到任何内容。
一页是https://almarea.it/login
aspx页面中按钮的代码是

<asp:LinkButton runat="server" ID="lnkBtnLogin" class="btn btn-default btn-lg btn-block" OnClick="lnkBtnLogin_Click" Text="LOGIN"></asp:LinkButton>

代码后面的代码很长,但是如果我试图删除所有代码,让它空出来,问题仍然存在。

protected void lnkBtnLogin_Click(object sender, EventArgs e)
    {
    }

所以问题不在这里。
我检查了空的src和空的href,但我没有找到任何东西。

    • EDIT**----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我有同样的错误,Page_Load调用了两次,第一次进入页面(IsPostback为false)当我点击按钮时,lnkBtnLogin_Click方法触发了一次,Page_Load触发了两次,一次是IsPostback = true,第二次是IsPostBack = false。
由于该项目是新的,我假设这是一个Visual Studio/应用程序属性/Web配置错误。
有人可以尝试做一个新的项目,并告诉我,如果有同样的错误?
GITHUB我用空的解决方案创建了一个github项目,让你检查我的问题
GITHUB LINK

    • 编辑**---------------------------------------------------------------

这只发生在Google Chrome浏览器上

owfi6suc

owfi6suc1#

您是否正在使用主页面+子页面?在这种情况下,母版页加载和子页加载都会触发。
按钮代码也有可能做出响应。重定向回相同的页面,这当然也会导致页面加载加倍。另一种可能是在按钮中使用回发URL。在这种情况下,您不希望为该按钮提供事件存根,因此要么从按钮中删除postbackURL,要么删除后面代码中的事件存根-不要两者都有。
您可以只发布按钮标记,然后说按钮事件代码存根。
另一种可能是一些JavaScript代码,这些代码回发到同一页面。

编辑:同时检查页面是否有空的href

也有人认为css中的hrefs =''或url('')会导致这种情况。
因此,将任何空白href改为href="#”代替“",如果在css中使用,页面上的url('')改为url('#')也是如此。

Edit 2:使用chrome和示例仓库进行测试

嗯,我刚测试了样品。
使用chrome,我启动,得到这个:

oxf4rvwz

oxf4rvwz2#

检查你的浏览器开发工具(网络选项卡),看看是什么发起了第二个请求。

相关问题