c# - 与其使用 single() 返回表中的一项,如何返回与列表中相同 ID 绑定的多个项?
问题描述
我正在创建一个联系人管理数据库作为一个项目,并使用剃须刀页面创建了联系人和活动表。在个人联系人的页面上,我想返回与其 ID 相关的所有活动的列表,而不仅仅是单个活动。这是我的设置方式:
public Contact Contact { get; set; }
public List<Activity> Activity { get; set; }
public async Task<IActionResult> OnGetAsync(int? id)
{
if (id == null)
{
return NotFound();
}
Contact = await _context.Contact
.Include(c => c.Location)
.Include(c => c.Role)
.Include(c => c.State).FirstOrDefaultAsync(m => m.ContactID == id);
Activity = await _context.Activity
.Include(c => c.ActivityTask)
.Where(m => m.ContactID == id)
.ToListAsync();
if (Contact == null)
{
return NotFound();
}
return Page();
}
然后我调用每个项目显示如下:
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Activity.Single().Status)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Activity.Single().Status)
</dd>
显然 single 会抛出异常,但我不确定用什么替换它。我想可能是 Where() 或 FindAll() 但在我当前的设置中都不起作用。
解决方案
您必须在打开剃刀代码以呈现活动列表之间进行选择:
@foreach (var item in Activity)
{
<...
}
或.FirstOrDefault()
仅使用和渲染第一个。
问候。
推荐阅读
- r - 是什么导致与时间序列属性相关的错误?
- javascript - 无法在 JavaScript 中修改二叉树节点
- html - 如何使用 CSS 在每个部分重置排序列表?
- javascript - 需要一些帮助来找出 Google Sheets API 和 Node.js 之间的这个错误
- c++ - 忽略/跳过文件中的错误数据?C++
- go - 即使结构未导出,您可以使用结构的类型定义吗?
- c# - dbcontext 派生自的 Net Core 3.0 依赖注入接口
- css - 如何重新创建“倾斜”的 CSS 界面?
- terraform - 在 terraform 或 jq 中加入具有单个元素的数组
- python - Python selenium 切换到具有特定 URL 的窗口