Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用对象处理空日期值_C#_Asp.net - Fatal编程技术网

C# 如何使用对象处理空日期值

C# 如何使用对象处理空日期值,c#,asp.net,C#,Asp.net,如何在C ASP.NET C中使用对象处理空值 下面我使用超链接在条件的基础上做可见的正确和错误 <asp:Label ID="Label3" runat="server" Text="Date not confirm" Visible='<%#GetVisible2(Eval("DateofEvent").ToString()=="")%>'></asp:Label> 每次只返回false。我不知道条件是正确的还是错误的。存在一个方法来检查字

如何在C ASP.NET C中使用对象处理空值

下面我使用超链接在条件的基础上做可见的正确和错误

<asp:Label ID="Label3" runat="server"  Text="Date not confirm" 
     Visible='<%#GetVisible2(Eval("DateofEvent").ToString()=="")%>'></asp:Label>

每次只返回false。我不知道条件是正确的还是错误的。

存在一个方法来检查字符串是否为空:

  if (String.IsNullOrEmpty(value))
    {
        return true;
    }
    return false;

默认情况下,DateTime变量采用DateTime.MinValue,因此您应将其与此进行比较,如下所示:

<asp:Label ID="Label3" runat="server"  Text="Date not confirm" 
         Visible='<%#GetVisible2(Eval("DateofEvent"))%>'></asp:Label>

    public bool GetVisible2(DateTime? value)
    {
        if (value == null || value == DateTime.MinValue)
        {
            return true;
        }
        return false;
    }

因为您向函数传递的布尔值永远不等于空字符串:

Eval("DateofEvent").ToString()=="" // this will generate true or false
这将布尔值传递给GetVisible2。试试这个:

<asp:Label ID="Label3" runat="server"  Text="Date not confirm" 
     Visible='<%#GetVisible2(Eval("DateofEvent").ToString())%>'></asp:Label>
或者Tim Schmelter建议的更干净的方法,没有任何验证方法:

<asp:Label ID="Label3" runat="server"  Text="Date not confirm" 
     Visible='<%#String.IsNullOrEmpty(Eval("DateofEvent").ToStrin‌​g())%>'></asp:Label>

您正在ASPX页面内计算函数,并将布尔值传递给GetVisible2函数

这就是为什么每次都返回false,因为对象值不是字符串,而是布尔值

应该是

Eval("DateofEvent")
代替

Eval("DateofEvent").ToString() == ""
功能将是

public bool GetVisible2(object value)
{
    return value!=null;
}

或者,如果您还想考虑空字符串NULL,则可以执行以下

public bool GetVisible2(object value)
{
    var s = value as string;
    return value!=null || (s is string && !string.IsNullOrEmpty(value as string));
}

获取错误:对象不包含对to string的定义,并且没有扩展方法tostring acception找不到object类型的第一个参数@奥库兹

不是

toString()
但它是

ToString()

C是区分大小写的。

我认为最好在将其转换为字符串之前传递DateofEvent,因为;如果DateofEvent为null,则.ToString将引发NullReference,因此更改如下所示:

 <asp:Label ID="Label3" runat="server"  Text="Date not confirm" 
 Visible='<%#IsVisible(Eval("DateofEvent"))%>'></asp:Label>

或者甚至像这样的东西:返回值!=null&&value.ToString!=

尝试在谷歌搜索-我搜索了这就是为什么来这里寻求帮助,请帮助@KarthikAMR1。2.了解如何使用调试器。然后在方法中设置断点,并检查传递的值的类型和值。Getting错误:对象不包含对to string的定义,并且没有扩展方法tostring acception找不到object类型的第一个参数@OrcusZif值为null。ToString将为您提供NullReferenceException`IsNullOrEmpty是string类中的静态方法,因此您必须使用string.IsNullOrEmptyvalue.ToString。但是这对OP没有帮助,因为如果这能起作用,OP的代码也会起作用。你的权利,对不起,是在法国的早晨,我需要喝杯咖啡来醒来^^^@OrcusZ:嗯,它仍然没有编译,因为value是一个对象,而IsNullOrEmpty是一个字符串。此外,您必须检查value是否为null,否则您可能会在value.ToString处获得NullReferenceException。最后,这与OP的==-check相同。但是OP将方法的返回值与==进行比较,后者无法工作,因为该方法返回bool。获取此错误:参数1:无法从对象转换为字符串@扎希尔Ahmed@ZaheerAhmed:好吧,但现在这就引出了一个问题:他为什么需要这种方法呢。Visible=@TimSchmelter我想建议,但现在我无法确认语法。谢谢你把它放在这里:如果返回值为null怎么办。。那你需要用什么?数据时间是这样的:日期时间?函数参数中的值。我将在POST中更新我认为没有必要使用对象作为参数,您的值将始终为null或datetime,所以您应该使用datetime?它可以接受null和datetime。请检查我的答案也
ToString()
 <asp:Label ID="Label3" runat="server"  Text="Date not confirm" 
 Visible='<%#IsVisible(Eval("DateofEvent"))%>'></asp:Label>
public bool IsVisible(object value)
{
   return value != null && String.IsNullOrEmpty(value.ToString());
}