Asp.net 无法在c中选择旧日期和今天日期的日期验证程序#

Asp.net 无法在c中选择旧日期和今天日期的日期验证程序#,asp.net,validation,Asp.net,Validation,当用户在文本框中插入所选日期时,该日期不能是旧日期或今天日期我可以使用什么验证规则 我也不确定要使用哪个验证程序控件。对于这种非标准情况,您需要使用CustomValidator,这将要求您编写服务器端验证函数。MSDN的详细信息如下: 一种方法是将CustomValidator与ServerValidate一起使用,如下所示: <asp:CustomValidator runat="server" ID="CustDateValidator" ControlToVali

当用户在文本框中插入所选日期时,该日期不能是旧日期或今天日期我可以使用什么验证规则


我也不确定要使用哪个验证程序控件。

对于这种非标准情况,您需要使用
CustomValidator
,这将要求您编写服务器端验证函数。MSDN的详细信息如下:


一种方法是将
CustomValidator
ServerValidate
一起使用,如下所示:

<asp:CustomValidator runat="server"
    ID="CustDateValidator" 
    ControlToValidate="txtDate"
    onservervalidate="CustDateValidator_ServerValidate" 
    ErrorMessage="enter valid date in the future" />
如果需要,您还可以提供一个(实现取决于您)

注意:如果输入控件为空,则不调用验证函数,验证成功


如果您需要确保它不是空的,那么您还需要一个
RequiredFieldValidator

您真的需要它在
验证
控件中吗?为此使用代码隐藏非常简单。您尝试过什么?显示您的aspx标记,这将帮助我们提供解决方案。@MalcolmNathanielNg:那么您尝试了什么,出现了什么(新)错误,或者出现了什么不希望出现的结果?在问题中显示您的aspx。请避免使用诸如“不起作用”之类的短语,因为它根本不提供任何信息。Tim的aspx与您张贴的内容相同,不希望出现的结果是,我选择的日期可能是过去的日期,而这不是我想要的日期want@MalcolmNathanielNg:但是由于您没有显示您的aspx,例如,我提供了一个例子,如果控件不是
txtDate
,那么这个例子当然不起作用。服务器端验证功能是否被命中?使用调试器并在那里设置一个断点(也在加载页面中);我不明白你最后的评论。
protected void CustDateValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
    DateTime dt;
    args.IsValid = (DateTime.TryParse(args.Value, out dt) 
                    && dt > DateTime.Today);
}