ASP.Net Web应用程序 - 服务器端取消提交PostBackUrl如果不是(!)Page.IsValid

时间:2012-10-31 04:58:01

标签: asp.net validation-controls

我有一个Web应用程序,如果表单有效,则提交使用PostBackUrl来显示数据。

我需要使用不同的(服务器端)验证组,具体取决于所选的radiobutton。也就是说,手动调用

Page.Validate('ValidationGroupA').

根据Page.IsValid正确分配的真或假,验证本身工作正常。

但是,如果页面无效,页面将重定向到提交按钮上PostBackUrl指定的页面,其中发现页面无效,并且客户端重定向为:

if (!PreviousPage.IsValid){Response.Redirect("DataEntryPage.aspx");})

然而,通过到达此处并返回,所有表单数据都将丢失,并且不会显示相关的验证控件和摘要。

是否有任何等效的JavaScripts evt.preventDefault()或其他方式,一旦检测到验证失败后,手动调用Page.Validate将表单发回并显示适当的验证错误?

2 个答案:

答案 0 :(得分:0)

使用ASP.Net客户端验证。

jQuery代码(在提交按钮的onclick上调用它):

  $("#SubmitButtonID").click(function (e) {
      Page_ClientValidate('ValidationGroupA');
      if (!Page_IsValid)
      {
         e.preventDefault();
      }
  });

答案 1 :(得分:0)

我最终删除了PostBackUrl指令,并为提交按钮使用了onclick事件

protected void Submit_Click(object sender, EventArgs e)
{
   if (chartTypeRadio.Text != "bolus") { Page.Validate("age"); }
   if (Page.IsValid) { Server.Transfer("~/PatientSpecificDrugChart.aspx", true); }
}