如何在MVC Razor Tabe中使用Relationship迭代另一个模型属性

本文关键字:Relationship 迭代 另一个 属性 模型 MVC Razor Tabe | 更新日期: 2023-09-27 18:20:44

我的MVC5视图中有一个表,它使用它们之间的关系从不同的模型中获取另一个属性,但它在这一行引发了错误。。。

这是剃刀桌

<div class="box-content nopadding">
                    <table class="table table-bordered dataTable dataTable-scroll-x">
                        <thead>
                            <tr>
                                <th>
                                    <span class="span2">Branch(s)</span>
                                    <span class="span3">First Term</span>
                                    <span class="span3">Second Term</span>
                                    <span class="span3">Third Term</span>
                                    <span class="span1">Option</span>
                                </th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach (var item in ViewData["Term"] as IEnumerable<_1._2._0_Core.Domains._2._1_Domain.AcademicFramework._1._1AcademicModels.Term>)
                            {
                                <tr>
                                    <td>
                                    <span class="span2">@item.SchoolBranch.RegNo</span> // This is where the error is coming from because am trying to bring in another model property
                                    <span class="span3">@item.StartDate - @item.EndDate</span>
                                    <span class="span3">@item.StartDate() - @item.EndDate</span>
                                    <span class="span3">@item.StartDate - @item.EndDate</span>
                                    <span class="span1"><a href="@Url.Action("#")"class="btn"  rel="tooltip" title="Edit"><i class="icon-edit"></i></a></span>
                                    </td>
                                </tr>
                            }
                        </tbody>
                    </table>
                </div>

这是型号定义

public class Term
{
    public string TermName { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public int SessionId { get; set; }
    public virtual Session Session { get; set; }
    public int SchoolBranchId { get; set; }
    public virtual SchoolBranch SchoolBranch { get; set; } //this is the relationship, i Used Fluent to map it
}

这是它试图从获得属性的另一个模型

 public class SchoolBranch : BaseEntity
{
    public string RegNo { get; set; }
    .....    
    public virtual ICollection<Term> Term { get; set; }
    .....
}

如何使用它们的关系将此属性显示在该表中谢谢你的时间,请

这是我的控制器

public ActionResult SessionDetail(int id)
    {
        ViewData["Term"] = _academicFramService.GetAllTerm(id);
        return View();
    }

如何在MVC Razor Tabe中使用Relationship迭代另一个模型属性

GetAllTerm方法中,可以使用Include加载主查询中的每个SchoolBranch

var db = ..; // the context instance
var query = db.Set<Term>()
    .Include(x => x.SchoolBranch)
    .Where(x => ... == id);