在视图中的模型之间导航的 MVC 3 错误
Posted
技术标签:
【中文标题】在视图中的模型之间导航的 MVC 3 错误【英文标题】:MVC 3 Error for Navigating between Models in View 【发布时间】:2011-07-25 09:38:29 【问题描述】:我整个下午都被这个问题困住了,如果有人能告诉我怎么做,不胜感激,谢谢!
我正在使用 MVC 3 并设置了两个模型:
public class Employee
[Key]
public virtual int Id get; set;
public virtual string Emp_Id get; set;
public virtual string Emp_Name get; set;
public virtual int Emp_Type get; set;
public virtual ICollection<Job> Jobs get; set;
public class Job
[Key]
public virtual int Id get; set;
public virtual string SO get; set;
public virtual int? Manhour_Type get; set;
public virtual DateTime? StartJob get; set;
public virtual DateTime? EndJob get; set;
public virtual double? Duration get; set;
public virtual Employee employee get; set;
这段代码生成了两个数据库:
public class JMCDB : DbContext
public DbSet<Employee> Employees get; set;
public DbSet<Job> Jobs get; set;
protected override void OnModelCreating(DbModelBuilder modelBuilder)
modelBuilder.Entity<Job>().HasRequired(j => j.employee).WithMany(e => e.Jobs);
我创建 JobController 如下:
public class JobController : Controller
//
// GET: /Job/
JMCDB _db = new JMCDB();
public ActionResult Index()
var job = _db.Jobs;
return View(job);
在“查看”中,我想查看此特定工作的员工姓名:
@foreach (var item in Model)
<tr>
<td>
@html.DisplayFor(modelItem => item.SO)
</td>
<td>
@Html.DisplayFor(modelItem => item.Manhour_Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.StartJob)
</td>
<td>
@Html.DisplayFor(modelItem => item.EndJob)
</td>
<td>
@Html.DisplayFor(modelItem => item.employee.Emp_Name)
</td>
<td>
</td>
</tr>
但是当我运行程序时,最后一行代码出现错误
"@Html.DisplayFor(modelItem => item.employee.Emp_Name)"
我不知道如何解决,如果有人能告诉我如何解决,谢谢。
【问题讨论】:
能否提供更多源代码?您如何“加载”您的实体以及异常消息是什么? 【参考方案1】:您可以使用Include
方法预先加载导航属性employee
public ActionResult Index()
var job = _db.Jobs.Include(job => job.employee);
return View(job);
【讨论】:
非常感谢!它有效,虽然我还没有弄清楚为什么。但真的很感激!以上是关于在视图中的模型之间导航的 MVC 3 错误的主要内容,如果未能解决你的问题,请参考以下文章