离开if语句

时间:2009-12-21 20:32:49

标签: asp.net validation

我在if语句中有一个if语句。

如果第二个if语句中的条件返回false,我想转到第一个if 因为它会自动设置我的验证控件。

我希望你明白

if (page.isvalid() )
{
    if (datetime.tryparse (date) == true)
    {
        // ok    
    } 
    else
    {
       //go to the other else
    }
}
else
{
    // want to go here
}

编辑:

重要的是我必须首先验证页面,因为在验证之后,我知道我可以从2个输入控件解析日期时间并检查第二个输入控件是否大于第一个。否则,如果日期无效,它会抛出异常。

4 个答案:

答案 0 :(得分:9)

而不是DateTime.Parse(日期)使用

DateTime dt;
bool isParsed = DateTime.TryParse(date, out dt);

//if ( page.isvalid() && (datetime.parse (date) == true) )   
if ( page.isvalid() && isParsed )   
{        
     // ok        
}     
else    
{       
    // want to go here
}

答案 1 :(得分:1)

取出它们,它应该是你正在寻找的。此外,在一切都好之后添加一个return语句。

if ( page.isvalid() )
{
    if (datetime.parse (date) == true)
    {
        // ok    
    } 
    return;
}

// code here happens when it's not valid.

答案 2 :(得分:1)

我相信,这正是你想要的。

if (page.isvalid() && datetime.tryparse(date) == true)
{        
    // ok
}
else
{
    // want to go here
}

目前尚不清楚'== true'是否必要;你可能会放弃这种情况。

答案 3 :(得分:0)

你想做什么是不可能的。有两种选择。一种是在if子句的顶部确定两个答案。这是其他海报告诉你要做的事情。另一个选择是这样的:

bool isvalid = true;
if ( page.isvalid() )
{    
    if (datetime.tryparse (date) == true)    
    {        
        // ok        
    }
    else    
    {       
        isvalid = false;    
    }
}
else
{
    isvalid = false;
}
if (isvalid == false)
{
    //do whatever error handling you want
}

这将从您的else子句中提取错误处理代码,并将其放在两个代码路径都可以到达的地方。