我的表单中有几个页面需要验证电子邮件地址。我不想在每个页面中设置ValidationExpression
,而是将Regex字符串作为字符串常量存储在Constants类中,并执行类似
ValidationExpression="<%=Tickets.App_Code.Constants.EmailRegex%>"
我知道我可以在Code Behind中执行此操作,但我想在Aspx页面中以声明方式执行此操作。但是上述方法不起作用,因为文本不会被常量的内容替换。在ASP.Net中,我们有类似<%# %>(Binding) , <%= %> (Invoke code)
的语法。
我在网上搜索了但是我找不到这方面的文档。有人可以帮忙吗?
答案 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>
示例输出: