【发布时间】:2013-10-10 09:59:39
【问题描述】:
我有一个.aspx 网页,上面添加了一个UserControl。在UserControl 中,当LinkButton 是clicked 它在第一次尝试时不会Postback。但是当我们再次click 时它会执行Postback 然后只有页面重定向不知道为什么?
有什么想法吗?
在 .ASPX 标记中:
<asp:LinkButton ID="lnkCheckOut" runat="server"
CssClass="button orange" onclick="lnkCheckOut_Click">Checkout</asp:LinkButton>
In.cs 文件:
protected void lnkCheckOut_Click(object sender, EventArgs e)
{
if (Session["UserID"] != null)
{
lnkCheckOut.PostBackUrl = "~/checkout.aspx?type=checkout";
//Response.Redirect("~/checkout.aspx?type=checkout");
Session["IsQuoteAdded"] = "false";
}
//if not logged in user
else
{
lnkCheckOut.PostBackUrl = "~/login.aspx?returnUrl="+HttpUtility.UrlEncode(Request.RawUrl);
}
}
当我在第一次点击时在浏览器中看到标记(在 Chrome 中使用 F12)时,它会显示:
<a id="ctl00_ContentPlaceHolder1_shpCart_lnkCheckOut" class="button orange" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$shpCart$lnkCheckOut','')">Checkout</a>
第二次点击时:
<a id="ctl00_ContentPlaceHolder1_shpCart_lnkCheckOut" class="button orange" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$shpCart$lnkCheckOut", "", false, "", "login.aspx?returnUrl=%2fNew%2fMyBox.aspx", false, true))'>Checkout</a>
注意:我没有在网页或用户控件中使用任何 UpdatePanel。
帮助赞赏!
【问题讨论】:
-
我不知道为什么会这样,但另一种方法是在 javascript 中链接按钮的 onclick 事件中使用 __doPostback 函数。
-
嗨 Neelam,但是会话验证呢?
-
我遇到了这种问题,这是我在找不到其他任何东西时最终使用的解决方案。您还需要在 .aspx 页面中添加 EnableEventValidation = false。我不确定会话验证。你应该解决这个问题,把我的建议作为最后的手段。
标签: c# asp.net postback linkbutton