首页 > 解决方案 > 值不能为空;参数名称“来源”

问题描述

 @if ( Model.Select(p=>p.Payments.Any(o=>o.Expires>DateTime.Now))!= null)
 { 

 <table class="table">
     <tr>
         <th>
             @Html.DisplayName("Student ID")
         </th>

         <th>
             @Html.DisplayName("Full Name")
         </th>

         <th>
             @Html.DisplayName("Expiry Date")
         </th>

         <th>
             @Html.DisplayName("Contact Number")
         </th>
         <th></th>


         @foreach (var item in Model.Where(p => p.Payments.Any(o => o.Expires > DateTime.Now)))
         {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.StudentID)

这是在 MVC 项目中,这是我想向当天过期的学生展示的主页。我已经使用了该If语句,但我很困惑为什么会遇到该异常。

标签: c#asp.net-mvc

解决方案


我已经测试了代码,如果模型为空,你确实会得到空异常。

在此处输入图像描述

这里的问题在于您的逻辑流程 - 首先进行选择,然后检查可空性。

if块中 - 首先检查 null 然后选择结果:

if (Model != null && Model.Select(p => p.Payments.Any(o => o.Expires > DateTime.Now)).Any())

推荐阅读