나는 서버에서 유효성을 검사하는 사용자 정의 검사기와 버튼 (PostbackUrl = "Page2.aspx")을 사용합니다.크로스 페이지 게시 및 사용자 정의 검사기
버튼을 누르면 페이지가 유효한지 확인하지 않고 브라우저에 항상 Page2가 표시됩니다.
누구든지 해결 방법을 알고 있습니까?
나는 서버에서 유효성을 검사하는 사용자 정의 검사기와 버튼 (PostbackUrl = "Page2.aspx")을 사용합니다.크로스 페이지 게시 및 사용자 정의 검사기
버튼을 누르면 페이지가 유효한지 확인하지 않고 브라우저에 항상 Page2가 표시됩니다.
누구든지 해결 방법을 알고 있습니까?
asp.net에 의해 추가 된 "WebForm_DoPostBackWithOptions"onclick 이벤트 처리기가 양식의 "action"속성을 "PostbackURL"단추 속성으로 설정 한 것으로 변경하므로 서버 측 유효성 검사가 실행되지 않습니다. page2.aspx ". 즉, 포스트 백은 사용자 정의 유효성 검사기가있는 페이지를 전달하여 "Page2.aspx"로 곧바로 이동하므로 서버 측 유효성 검사가 실행되지 않습니다. 그러나 페이지가 제출되기 전에 클라이언트 쪽 유효성 검사가 실행됩니다.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.Button1.PostBackUrl = string.Empty;
this.Button1.Click += new EventHandler(this.Button1_Click);
this.CustomValidator1.ServerValidate += new ServerValidateEventHandler(this.CustomValidator1_ServerValidate);
}
void Button1_Click(object sender, EventArgs e)
{
if (this.Page.IsValid)
{
this.Response.Redirect("~/page2.aspx");
}
}
void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
// validation logic here
}
}
희망이 귀하의 질문에 대한 대답 :
이 문제를 해결하는 방법은 버튼에 대한 서버 측 클릭 이벤트 투수를 추가하고 다음과 같이 페이지가 유효한 경우 그 방법에 PAGE2로 리디렉션하는 것입니다.
키스
page2.aspx는 시작한 페이지와 다른 페이지입니까? - PostBackUrl을 사용하는 이유는 무엇입니까? 당신은 Page1을 가지고 있고, 클릭 후 당신은 Page2에 가야합니까? – Aristos
예, Page1에서 시작하고 버튼을 클릭하면 Page2로 이동합니다. – Vinzcent