【问题标题】:How do I add data validation to a web form field using ASP.NET?如何使用 ASP.NET 向 Web 表单字段添加数据验证?
【发布时间】:2012-05-04 22:02:53
【问题描述】:

我好像只需要一两行代码?

这是我需要做的:

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

这需要编程API,例如:

  • System.Net.Mail
    • 邮件消息
    • SmtpClient
    • 网络凭据

这似乎很容易,但我很迷茫。 当我运行它时,此页面也不会显示。这是页面代码:我希望我做对了,如果不正确,请见谅。我正在努力!

    <%@ 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>   

【问题讨论】:

    标签: asp.net html vb.net


    【解决方案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

    【讨论】:

    • 谢谢,遗憾的是我需要一步一步的说明,因为这对我来说意义不大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多