C# 返回错误的天数Nullable对象必须具有值

C# 返回错误的天数Nullable对象必须具有值,c#,asp.net-mvc,C#,Asp.net Mvc,我尝试了许多不同的方法,视图上的代码似乎是正确的。然而,我得到的错误,我不知道为什么。代码嵌套为仅在项目时运行=空但是,它似乎仍在查看日期为空的记录。我甚至把它改成了.hasValue,我仍然得到了错误 这是我的密码: @if (item.PaymentRequestedDate != null) { var dates = DateTime.Now; var reqDate = item.PaymentRequestedDate.Value;

我尝试了许多不同的方法,视图上的代码似乎是正确的。然而,我得到的错误,我不知道为什么。代码嵌套为仅在项目
时运行=空
但是,它似乎仍在查看日期为空的记录。我甚至把它改成了
.hasValue
,我仍然得到了错误

这是我的密码:

  @if (item.PaymentRequestedDate != null)
      {
        var dates = DateTime.Now;
        var reqDate = item.PaymentRequestedDate.Value;
        var days = (dates - reqDate).TotalDays;

       <span class="badge badge-pill badge-success">Requested: @Html.DisplayFor(modelItem => item.PaymentRequestedDate)</span>
       @if (days >= 15)
       {
          <span class="badge badge-pill badge-success">Past Due: @days days</span>
       }
  }

下面是运行的完整代码。正如我在评论中提到的,这个错误是因为If语句中有一个额外的@。我使用Elmah错误,出于某种原因,它没有跟踪该错误

    @if (item.PaymentRequestedDate != null)
    {
        var date = DateTime.Now;
        var reqDate = item.PaymentRequestedDate.Value;
        var newdate = reqDate.AddDays(15);
        var isLate = (date - newdate).Days;
        var days = (date - reqDate).Days;
        <span class="badge badge-pill badge-success">Requested: @Html.DisplayFor(modelItem => item.PaymentRequestedDate)</span>
        if ((days >= 15) && (item.Payment == 1))
        {
            <span class="badge badge-pill badge-warning">Past Due: @isLate days</span>
        }
    }
@if(item.PaymentRequestedDate!=null)
{
var date=DateTime.Now;
var reqDate=item.PaymentRequestedDate.Value;
var newdate=reqDate.AddDays(15);
var isLate=(日期-newdate).Days;
var天数=(日期-请求日期).days;
请求:@Html.DisplayFor(modelItem=>item.PaymentRequestedDate)
如果((天数>=15)和&(项目付款==1))
{
逾期:@离岛天数
}
}

请显示
PaymentRequestedDate
的定义。那么PaymentRequestedDate是一个可为空的日期时间?你能给我看一下“item”的类别吗我想看看属性
item.PaymentRequestedDate的类型是什么?是
DateTime
还是
DateTime?
(又称
Nullable
)?请再次尝试清理、重建和运行项目。
var dates=DateTime.Now-这是非常糟糕的变量命名。
    @if (item.PaymentRequestedDate != null)
    {
        var date = DateTime.Now;
        var reqDate = item.PaymentRequestedDate.Value;
        var newdate = reqDate.AddDays(15);
        var isLate = (date - newdate).Days;
        var days = (date - reqDate).Days;
        <span class="badge badge-pill badge-success">Requested: @Html.DisplayFor(modelItem => item.PaymentRequestedDate)</span>
        if ((days >= 15) && (item.Payment == 1))
        {
            <span class="badge badge-pill badge-warning">Past Due: @isLate days</span>
        }
    }