자바를 통해 경고를 표시하는 작은 클래스가 있습니다. 사용자가 유효한 우편 번호를 입력했는지 확인하는 페이지에서이 클래스를 사용하고 있습니다. 유효한 우편 번호를 입력하지 않으면 경고가 표시되고 해당 페이지는 동일한 페이지로 다시 게시되므로 변경할 수 있습니다. 유효한 우편 번호를 입력하면 다른 페이지로 리디렉션됩니다. 문제는 브라우저에서 뒤로 버튼을 누르면 우편 번호가 유효한지 여부와 관계없이 경고가 표시된다는 것입니다. 여기 BrowserBack에서 호출 된 등록 된 경고 스크립트
는 흐름입니다 : -> 우편 번호를 입력 -우편 번호 입력 페이지> 우편
확인하는 경우 유효한 우편 -> 고토 overview.aspx 경우 유효하지 않은 우편, 고토 우편 시작 페이지
overview.aspx에서 브라우저의 뒤로 버튼을 누르면 경고가 표시됩니다. 나는 이것을 원하지 않는다. 아래는 훌륭한 경고 클래스에 대한 코드입니다. 아래에는 LinkButton을 클릭 할 때 경고를 확인하고 표시하는 코드가 있습니다.
protected void GotoReview(object sender, EventArgs e) {
if (ValidateZipCode(ZipCode)) {
Response.Redirect(string.Format("~/checkout/overview.aspx?pc={0}&zc={1}",
ProductCode, ZipCode));
}
else {
Alert.Show("The entered zip code is invalid. Please ensure the zip code is a valid zip code.");
}
}
private bool ValidateZipCode(string zip) {
if (zip.Length < 5 || zip.Length > 5) {
return false;
}
if (!Regex.IsMatch(zip, @"^(\d{5}-\d{4})|(\d{5})$")) {
return false;
}
return true;
}
public static class Alert {
public static void Show(string message) {
string cleanMessage = message.Replace("'", "\\'");
string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>";
Page page = HttpContext.Current.CurrentHandler as Page;
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert")) {
page.ClientScript.RegisterClientScriptBlock(typeof(Alert), "alert", script);
}
}
}