我正在ASP.NET C#中編寫驗證碼身份驗證程序。我面臨的問題是在回發期間輸入錯誤的值時圖像被刷新;但是同樣的圖像在部分回發期間不會刷新,當我將它們保存在更新面板中時。ImageURL在更新面板中不起作用
ASPX源
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Image ID="ImageCaptcha" runat="server" ImageUrl="~/BringImg.aspx" /><br />
<asp:TextBox ID="txtCaptcha" runat="server" ></asp:TextBox><br />
<asp:Button ID="btnSubmit" runat="server" Text="Submit Project" OnClick="btnSubmit_Click"/>
</ContentTemplate>
</asp:UpdatePanel>
代碼背後:
private System.Random rand = new System.Random();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.Session["Captcha"] = GenerateRandomCode();
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string temp = this.Session["Captcha"].ToString();
if (string.Compare(temp, this.txtCaptcha.Text.Trim()) == 0)
{
// success logic
}
else
{
this.lblResult.Text = "Validation Text was not correct.";
this.Session["Captcha"] = GenerateRandomCode();
ImageCaptcha.ImageUrl = "~/BringImg.aspx";
ImageCaptcha.DataBind();
}
}
坦白說,如果你能避免它,我會建議對ASP.NET AJAX和使用*真正* AJAX來代替。 – Aren
你正在發送任何no-cache頭文件嗎? Internet Explorer是否設置爲自動獲取新版本的頁面?如果是這樣,在工具選項「瀏覽歷史 - >設置」下設置爲「每次我訪問網頁」 –
我建議你設置ajax nocache選項,它是這樣的:$ .ajaxSetup({cache:false} }); –