2013-01-04 153 views
0
<asp:RegularExpressionValidator ID="revWebsite" runat="server" ForeColor="Red" 
ControlToValidate="txtWebsite" ErrorMessage="Invalid Website (General Details)" 
ValidationExpression="(http|https)://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?">* 
</asp:RegularExpressionValidator> 

为什么不工作? :asp.net无法正常工作的网站/网址验证

www.website.com

www.domain.website.com

http://website.com

https://website.com

+0

这里没有问题! –

+0

如何.......................... –

+0

你想检查网站的存在吗? – Arshad

回答

1

建议:如果您想验证一个网站,你可以检查它的存在通过它的思想。

您可以使用custom validator。对于看下面的例子:

在.aspx页面

<div> 
     <asp:TextBox runat="server" ID="txtURL" ValidationGroup="vlg" /> 
     <asp:RequiredFieldValidator ID="rqfvURL" ErrorMessage="Please Enter" ControlToValidate="txtURL" ValidationGroup="vlg" 
      runat="server" /> 
     <asp:CustomValidator ID="cstmValURL" ErrorMessage="Please enter valid site" 
      ControlToValidate="txtURL" runat="server" ValidationGroup="vlg" 
      onservervalidate="cstmValURL_ServerValidate" /> 
     <asp:Button Text="submit" ID="btn" runat="server" onclick="btn_Click" ValidationGroup="vlg" /> 
    </ div> 
中的.cs页

protected void cstmValURL_ServerValidate(object source, ServerValidateEventArgs args) 
     { 
      if (TestSite()) 
      { 
       args.IsValid = true; 
      } 
      else 
      { 
       args.IsValid = false; 
      } 
     } 

     private bool TestSite() 
     {   
      Ping objPing = new Ping(); 
      bool blnResult = false; 
      try 
      { 
       PingReply pngReply = objPing.Send(txtURL.Text.Trim(), 3000); 
       if (pngReply.Status == IPStatus.Success) 
        return blnResult= true; 
      } 
      catch 
      { 
       return blnResult=false; 
      } 
      return blnResult; 
     } 

附:这只是一个建议。

+0

我想用RegularExpressionValidator –