【问题标题】:ASP.NET LinkButton OnClick Event Is Not Working On Home PageASP.NET LinkBut​​ton OnClick 事件在主页上不起作用
【发布时间】:2009-12-23 15:31:04
【问题描述】:

我有一个用户控件来处理用户登录到我的网站。此用户控件作为快速登录框放置在所有页面的右上角。我遇到的问题是,在我的生产服务器上,我为登录和重置提供的 LinkBut​​ton 点击​​事件在回发后没有触发 OnClick 事件。它就像它只是忘记去做。

通常这不会是一个调试问题,除非在 localhost 上的调试中运行(也不是在 localhost 上的发行版中运行)时不会发生。它似乎只发生在我的生产服务器上,并且只发生在我的主页上。如果我尝试使用来自任何其他页面的用户控件登录,它工作正常,并且 OnClick 事件正常运行。我在这里束手无策,因为我只是不知道调试这个东西的方法,而且我在谷歌上遇到的每一个建议都无济于事。以下是我在用户控件中使用的标记,任何建议或帮助将不胜感激。 LinkBut​​ton 的“登录”和“重置”根本不起作用。

<asp:Panel ID="AnonPanel" runat="server" DefaultButton="Login">
<div id="welcome">
    <span class="welcome">Welcome </span><span class="guest1">Guest!</span>&nbsp; <span><a href="/login.html" class="guest">Login </a></span>|<span ><a href="/new-account-registration.html" class="guest"> Signup</a></span>
</div>
<div id="input_boxarea">
    <div id="user_id">
        <asp:TextBox ID="UserName" runat="server" CssClass="input_box1"></asp:TextBox>
    </div>
    <div id="password">
        <asp:TextBox ID="Password" runat="server" TextMode="Password" CssClass="input_box1" size="16"></asp:TextBox>
    </div>
</div>
<div id="remember">
    <div id="reme">
        <div id="reme1">
            <asp:CheckBox ID="RememberMe" runat="server" />
        </div>
        <div id="reme2">Remember me</div>
    </div>
    <div id="loginbutton1"><span class="login"><asp:LinkButton ID="Login" 
            runat="server" CommandName="Login" onclick="Login_Click">Login</asp:LinkButton></span></div>
    <div id="resetbutton1"><span class="login"><asp:LinkButton ID="Reset" 
            runat="server" onclick="Reset_Click">Reset</asp:LinkButton></span></div>
 </div>

<asp:Panel ID="AdminPanel" runat="server" Visible="false">
<div id="welcome_loggedin">
    <span class="welcome">Welcome </span><span class="guest1"><asp:LoginName ID="LoginName1" runat="server" />!</span><br />
    <asp:HyperLink ID="MyAccountLink" CssClass="memberLink" runat="server" NavigateUrl="/my-account.html">My Account</asp:HyperLink><br />
    <asp:HyperLink ID="MyLeaguesLink" CssClass="memberLink" runat="server" NavigateUrl="/my-leagues.html">My Leagues</asp:HyperLink><br />
    <asp:HyperLink ID="AdminLink" CssClass="memberLink" runat="server" NavigateUrl="/admin/">Admin Area</asp:HyperLink><br />
    <asp:HyperLink ID="IssueTrackerLink" CssClass="memberLink" runat="server" Target="_blank">Issue Tracker</asp:HyperLink><br />
    <asp:HyperLink ID="Logout" CssClass="memberLink" runat="server" NavigateUrl="/logout.html">Logout</asp:HyperLink>
</div>

<asp:Panel ID="UserPanel" runat="server" Visible="false">
<div id="welcome_loggedin">
    <span class="welcome">Welcome </span><span class="guest1"><asp:LoginName ID="LoginName2" runat="server" />!</span><br />
    <asp:HyperLink ID="HyperLink1" CssClass="memberLink" runat="server" NavigateUrl="/my-account.html">My Account</asp:HyperLink><br />
    <asp:HyperLink ID="HyperLink2" CssClass="memberLink" runat="server" NavigateUrl="/my-leagues.html">My Leagues</asp:HyperLink><br />
    <asp:HyperLink ID="HyperLink3" CssClass="memberLink" runat="server" NavigateUrl="/logout.html">Logout</asp:HyperLink>
</div></asp:Panel>

【问题讨论】:

  • 是的,我尝试将 CausesValidation="false" 添加到我的两个链接按钮中,但这并没有帮助。 LinkBut​​tons 确实会导致回发,但似乎 OnClick 事件代码没有运行。

标签: asp.net-3.5 onclick linkbutton


【解决方案1】:

尝试将“原因验证”属性更改为 false,看看是否会有所不同。

【讨论】:

  • 是的,试过了,但没有帮助。 (请参阅我在初始帖子下的评论)。
【解决方案2】:

您能暂时从这些事件处理程序中执行一些日志记录吗?

您可以写入网络服务器上的.txt 文件。或者到事件日志。

作为点击事件的第一行,写入日志。然后,在 try-catch 块中执行所需的操作(登录、重置)。 try 和 catch 都再次写入日志。如果发生了一些奇怪的异常,您可以在 catch 日志中捕获详细信息。

如果您想保留此临时代码,但又不想不必要地执行日志记录,您可以在 web.config 文件的&lt;appSettings&gt; 中添加一个切换开关,以便您可以打开和关闭日志记录.

【讨论】:

  • 是的,我尝试将日志记录添加到数据库中,给自己发送一封电子邮件,甚至在事件处理程序中抛出异常并且没有任何运行。这就是让我相信它甚至没有击中他们的原因,但我不知道为什么它会或只能发生在产品服务器上并且只能发生在单个页面上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多