asp.net - 如何在主从 CRUD 上查看特定 id 的记录?
问题描述
我创建了一个主详细信息 CRUD。我的观点是这样的:
@model TraficAlert.Models.ViewModels.HeaderTelegramaViewModel
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.TaBarHeader.ListaOtf)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.TaBarHeader.ListaOtf)
</dd>
(...)
<th>
@Html.DisplayNameFor(model => model.TaBarBody.BarTelegramaFk.NrTg)
</th>
<th>
@Html.DisplayNameFor(model => model.TaBarBody.BarTelegramaFk.Continut1Tg)
</th>
(...)
<tbody>
@foreach (var item in Model.taBarBody)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.BarTelegramaFk.NrTg)
</td>
<td>
@Html.DisplayFor(modelItem => item.BarTelegramaFk.Continut1Tg)
</td>
(...)
因此,在特定 ID 的 Details.cshtml 中,我可以看到 TaBarBody 的所有记录。TaBarHeader 和 TaBarBody 之间存在一对多的关系。
控制器:
public IActionResult Details(int id)
{
HeaderTelegramaViewModel headerTelegramaViewModel = new HeaderTelegramaViewModel();
headerTelegramaViewModel.TaBarHeader = _unitofwork.BarHeader.DetailsBarH(id);
headerTelegramaViewModel.taBarBody = _unitofwork.BarBody.GetAllBarB();
return View(headerTelegramaViewModel);
}
这是 DetailsBarB() 和 DetailsBarH():
public IEnumerable<TaBarBody> GetAllBarB()
{
return _db.TaBarBodies
.Include(t => t.AnulatFk)
.Include(t => t.ImpactFk)
.Include(t => t.BarHeaderFk)
.Include(t => t.BarTelegramaFk);
}
public TaBarHeader DetailsBarH(int? id)
{
return _db.TaBarHeaders
.Include(t => t.CategoriaFk)
.Include(t => t.CauzaFk)
(...)
.FirstOrDefault(m => m.Id == id);
}
所有数据都显示在详细信息视图中,但我不知道如何将我的所有记录从 TaBarBody 获取到特定 ID 的详细信息视图。
一切正常,但我从 TaBarBody 获得了所有记录。我只需要在视图中显示具有外键 = 来自 TaBarHeader 的主 ID 的 TaBarBody。一个 TaBarHeader 可以有多个 TaBarBody。
有任何想法吗?
更新:以下是请求的模型和视图模型:
public partial class TaBarHeader
{
[Key]
public int Id { get; set; }
public int ParentId { get; set; }
public string ListaOtf { get; set; }
public string NomCategoriaId { get; set; }
[ForeignKey("NomCategoriaId")]
public TaNomCategoria CategoriaFk { get; set; }
public string NomCauzaId { get; set; }
[ForeignKey("NomCauzaId")]
public TaNomCauza CauzaFk { get; set; }
public List<TaBarBody> TaBarBodies { get; set; }
}
public partial class TaBarBody
{
[Key]
public int Id { get; set; }
public int ParentId { get; set; }
public string NomImpactId { get; set; }
[ForeignKey("NomImpactId")]
public TaNomImpact ImpactFk { get; set; }
public string NomAnulatId { get; set; }
[ForeignKey("NomAnulatId")]
public TaNomAnulat AnulatFk { get; set; }
public int BarTelegramaId { get; set; }
[ForeignKey("BarTelegramaId")]
public TaBarTelegrama BarTelegramaFk { get; set; }
public int BarHeaderId { get; set; }
[ForeignKey("BarHeaderId")]
public TaBarHeader BarHeaderFk { get; set; }
}
public class HeaderTelegramaViewModel
{
public TaBarHeader TaBarHeader { get; set; }
public IEnumerable<TaBarHeader> taBarHeader { get; set; }
public TaBarBody TaBarBody { get; set; }
public IEnumerable<TaBarBody> taBarBody { get; set; }
}
public class BodyTelegramaViewModel
{
public TaBarBody TaBarBody { get; set; }
public IEnumerable<TaBarBody> taBarBody { get; set; }
public TaBarTelegrama TaBarTelegrama { get; set; }
public IEnumerable<TaBarTelegrama> taBarTelegrama { get; set; }
}
解决方案
推荐阅读
- hard-drive - 从坏扇区硬盘恢复数据
- typescript - 如何调试 Angular 错误:您在预期流的位置提供了“未定义”
- google-scholar - 系统现在无法执行该操作。稍后再试
- html - 音频元素被禁用(无效源错误)
- simics - 如何获得 Simics 日志消息的时间戳?
- nestjs - 不能在 nestjs/ng-universal 中包含像 hbs 文件这样的资产
- django - 在容器中部署 Django + Vuejs (AWS Elastic Beanstalk)
- bluetooth-lowenergy - 低功耗蓝牙发送整数数据
- firebase - 如何解决此错误。我正在尝试连接到 Firebase
- mysql - MariaDB 的 MySQL 程序