我遇到这种情况,我正在尝试调用存储过程以返回任务列表,其中ProjectId
为空。我测试了存储过程,它正在工作,但是在代码上却没有。我在做什么错了?
视图:
@foreach (var item in Model.Tasks)
{
@if (item.ProjectId == null)
{
<tr data-toggle="RecEdit" data-url="@(Url.Action("Edit") + "/" + item.TaskId)">
<td style="width: 20%">@item.Title</td>
<td style="width: 20%">@item.Description</td>
</tr>
}
}
这是模型类:
public class CreateTaskVM
{
public Task task {get; set;}
public ICollection<Task> Tasks { get; set; }
public ICollection<Project> projects {get; set;}
public ICollection<Employee> Employees { get; set; }
public ICollection<ProjectStatus> StatusTypes { get; set; }
}
这是我的控制器:
public IActionResult RecTask()
{
CreateTaskVM mytasks = new CreateTaskVM();
var param = new SqlParameter("@ProjectId", "Null");
mytasks.Tasks = context.Task.FromSql($"EXEC [dbo].[uspGET_Tasks] @ProjectId", param).ToList();
return View(mytasks);
}
我也尝试在Identity中执行此操作,但由于某些原因,MV空了。我只想显示一个值为ProjectId
为空的任务列表。
先谢谢了。
答案 0 :(得分:3)
SqlParameter包含字符串"Null"
。
如果要将空值发送到存储过程,请尝试使用DBNull.Value
:
var param = new SqlParameter("@ProjectId", DBNull.Value);
答案 1 :(得分:-1)
您必须将属性“ projectId”设置为可为空的属性。