如何使用ASP.NET将数据验证添加到Web表单字段?

时间:2012-05-04 22:02:53

标签: asp.net html vb.net

这似乎只需要一行或两行代码?

这就是我需要做的事情:

  • 将数据验证添加到“联系我”表单上的新电话字段中。我们 只接受格式如下的手机:995-999-9999
  • 填写联系我们表单,以便您可以将其作为电子邮件提交。将所有测试电子邮件发送至blah@boo.net。您可以使用任何电子邮件帐户发送电子邮件。

这需要编程API,例如:

  • System.Net.Mail
    • MAILMESSAGE
    • SmtpClient
    • 的NetworkCredential

这似乎很容易,但我很失落。 我运行它时也不显示此页面。这是页面代码:我希望我做得对,抱歉,如果不正确。我正在努力!

    <%@ Page Title="Contact Us" Language="vb" AutoEventWireup="false" MasterPageFile="~/Main.Master" CodeBehind="ContactUs.aspx.vb" Inherits="Week10.ContactUs" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h1>Contact Us</h1>
<hr />

<table border="1">
    <tr>
        <td>From</td>
        <td>
            <asp:TextBox ID="txtFrom" runat="server" Width="400px"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="rfvFrom" CssClass="ErrMSG"  runat="server" ControlToValidate="txtFrom" ErrorMessage="*" ToolTip="From field is required"></asp:RequiredFieldValidator></td>
    </tr>
    <tr>
        <td>Subject</td>
        <td>
            <asp:TextBox ID="txtSubject" runat="server" Width="400px"></asp:TextBox>
        </td>
        <td><asp:RequiredFieldValidator ID="rfvSubject" CssClass="ErrMSG" runat="server" ControlToValidate="txtSubject" ErrorMessage="*" ToolTip="Subject field is required"></asp:RequiredFieldValidator></td>
    </tr>
    <tr>
        <td>Phone</td>
        <td>
            <asp:TextBox ID="txtPhone" runat="server" Width="100px"></asp:TextBox>
        </td>
         <td><asp:RequiredFieldValidator ID="rfvPhone" CssClass="ErrMSG"  runat="server" ControlToValidate="txtPhone" ErrorMessage="*" ToolTip="Phone field is required"></asp:RequiredFieldValidator>
            </td>
    </tr>
    <tr valign="top">
        <td>Comments</td>
        <td>
            <asp:TextBox ID="txtComments" runat="server" Rows="10" TextMode="MultiLine" 
                Width="400px"></asp:TextBox>
        </td>
        <td><asp:RequiredFieldValidator ID="rfvComments" CssClass="ErrMSG" runat="server" ControlToValidate="txtComments" ErrorMessage="*" ToolTip="Comments field is required"></asp:RequiredFieldValidator></td>
    </tr>
    <tr>
        <td colspan="3" align="center">
            <asp:Button ID="btnSubmit" runat="server" Text="Submit" /></td>
    </tr>
    <tr>
        <td colspan="3" align="center">
            <asp:Label ID="lblMSG" runat="server" Text=""></asp:Label>
        </td>
    </tr>
</table>
</asp:Content>   

1 个答案:

答案 0 :(得分:1)

看一下RegularExpressionValidator http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.regularexpressionvalidator.aspx

您可以使用它来指定所需电话号码模式的表达模式。

有关正则表达式的更多信息,请查看本教程:http://www.regular-expressions.info/tutorial.html

构建表达式时,使用验证器更容易确保模式实际按预期验证。你可以在网上找到这些。这是一个:http://tools.netshiftmedia.com/regexlibrary/#

最后,这是一个非常简单的表达式来验证数字995-999-9999。但是,我认为这不是一个准确的验证(电话号码不能以一个开头)。

^ \ d {2} [1-5] - \ d {3} - \ d {4} $

编辑:

在手机所需的字段验证器后添加:

<asp:RegularExpressionValidator ID="rgexPhone" CssClass="ErrMSG"  runat="server"     ControlToValidate="txtPhone" ErrorMessage="*" ToolTip="Phone field is invalid" ValidationExpression="^\d{2}[1-5]-\d{3}-\d{4}$" />

但在盲目地将其他人的代码添加到您的项目之前,您真的应该知道这是做什么的。

也许这篇文章会更好地解释一下: http://msdn.microsoft.com/en-us/library/ff650303.aspx