Событие ASP.NET LinkButton OnClick не работает на домашней странице - PullRequest
2 голосов
/ 23 декабря 2009

У меня есть пользовательский элемент управления, который обрабатывает вход пользователя на мой сайт. Этот пользовательский элемент управления находится в правом верхнем углу всех страниц в виде поля быстрого входа. У меня проблема в том, что на моем рабочем сервере события щелчка LinkButton, которые я предоставил для входа в систему и сброса, не запускают событие OnClick после обратной передачи. Как будто он просто забывает это сделать.

Обычно это не было бы такой проблемой для отладки, за исключением того, что это не происходит при запуске в отладке на локальном хосте (или при запуске в выпуске на локальном хосте). Кажется, это происходит только на моем рабочем сервере и только на моей домашней странице. Если я пытаюсь войти с помощью пользовательского элемента управления с любой другой страницы, он работает нормально, и событие OnClick запускается, как обычно. Я нахожусь в своем уме здесь, поскольку я просто не знаю больше способов отладки этой вещи, и каждое предложение, с которым я столкнулся в Google, не помогает. Ниже приведена разметка, которую я использую в своем пользовательском контроле, любые предложения или помощь будут с благодарностью. «Вход» и «Сброс» LinkButton вообще не работают.

<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>

Ответы [ 2 ]

2 голосов
/ 23 декабря 2009

попробуйте изменить свойство «приводит к проверке» на «ложь» и посмотрите, будет ли это иметь значение.

0 голосов
/ 23 декабря 2009

Не могли бы вы временно выполнить регистрацию из этих обработчиков событий?

Вы можете записать файл .txt на веб-сервере. Или в журнал событий.

В качестве первой строки в событии клика запишите в журнал. Затем выполните желаемое действие (вход, сброс) в блоке try-catch. И try, и catch снова записываются в журнал. Если происходит какое-то странное исключение, вы можете зафиксировать детали в журнале регистрации уловов.

Если вы хотите оставить этот временный код на месте, но не хотите выполнять регистрацию без необходимости, вы можете добавить переключатель <appSettings> в свой файл web.config, чтобы вы могли включать и выключать регистрацию .

...