ASP.Net:动态设置ValidationExpression

时间:2011-10-15 05:30:50

标签: asp.net validation

我的表单中有几个页面需要验证电子邮件地址。我不想在每个页面中设置ValidationExpression,而是将Regex字符串作为字符串常量存储在Constants类中,并执行类似

的操作
  ValidationExpression="<%=Tickets.App_Code.Constants.EmailRegex%>"

我知道我可以在Code Behind中执行此操作,但我想在Aspx页面中以声明方式执行此操作。但是上述方法不起作用,因为文本不会被常量的内容替换。在ASP.Net中,我们有类似<%# %>(Binding) , <%= %> (Invoke code)的语法。

我在网上搜索了但是我找不到这方面的文档。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果你宣布你的班级是这样的:

namespace MyNamespace
{
    public class MyClass
    {

        public  const string EmailRegex = @"\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b";
    }
}

你当然可以这样做,它会起作用:

<asp:RegularExpressionValidator runat="server" id="myvalidator" ErrorMessage="email does not have correct format" ValidationExpression='<%=MyNamespace.MyClass.EmailRegex %>' ControlToValidate="email"></asp:RegularExpressionValidator>
<asp:TextBox ID="email" runat="server"></asp:TextBox>

示例输出:

enter image description here