ASP.NET - 在 ASP 页中定义一个变量,然后将其用于 Web 控件属性的值



是否可以在ASP页面中定义一个变量,然后将该变量用于web控件的属性值?

我正在尝试将验证控件添加到我的ASP.NET页面中,其中一个是regex控件。我想要的表达式将检查字段是否只包含数字、空格、加号和圆括号。(用于电话号码)现在圆括号是一个特殊的字符,不能用斜杠转义(据我所知),所以我使用Regex.Escape()构造了我的正则表达式,并将其存储为字符串变量。现在我想使用该变量作为regex验证控件的表达式属性的值。这可能吗?如果没有,我如何实现我想要的验证?

编辑1:所以,在我的ASP页面的标签中,我有这个:

<% string PhoneNumber = "[^0-9 |^" + Regex.Escape("(") + " |^" + Regex.Escape(" "); %>

然后再往下看,我有这个:

<asp:RegularExpressionValidator ID="MobilePhoneValidator" runat="server" ControlToValidate="MobilePhone" ErrorMessage="Mobile phone number must only contain numbers." ForeColor="Red" ValidationExpression=PhoneNumber></asp:RegularExpressionValidator>

我确信使用ValidationExpression="PhoneNumber"将使用实际的字符串PhoneNumber,而不会查找我的变量。尽管说实话,我实际上还没有尝试过。

我不知道为什么在标记中指定字符串而不是代码隐藏,但无论如何。

将这个字符串分配给验证器看起来是这样的:

<asp:RegularExpressionValidator ID="MobilePhoneValidator" runat="server" ControlToValidate="MobilePhone" ErrorMessage="Mobile phone number must only contain numbers." ForeColor="Red" ></asp:RegularExpressionValidator>
<% string PhoneNumber = "[^0-9 |^" + Regex.Escape("(") + " |^" + Regex.Escape(" "); 
   MobilePhoneValidator.ValidationExpression = PhoneNumber; %>

或者您可以在代码文件中定义它,而不是标记。

最新更新