在我发布后,我无法弄清楚如何让我的模型 (EF4) 的导航属性不为空。我在几个基本页面上遇到了同样的问题。
即,我有一个外键为 LoginID 的 Estimate 表(来自 Login 表)。
在我的 HTTPGet Edit 方法中,我找到了我想要的具体估计:
Estimate estimate = db.Estimates.Find(id)
从这里我可以访问登录导航属性和登录表中该记录的任何属性。
我通过这个估计作为我的强类型视图的模型。当我的 HTTPPost Edit 方法被调用(并且模型作为参数传递给它)时,我的 Login 导航属性为 null,我无法访问其中的任何内容。我当然可以绕过它,因为我的估算类中确实有 LoginID 字段,但感觉真的很笨重,就像我错过了实体框架的一个关键好处。
我在多个页面上遇到同样的问题,我将带有导航属性的模型传递给我的视图,并且视图正在返回带有空导航属性的模型。
以下是我遇到问题的代码示例:
[HttpPost]
public ActionResult Edit(Estimate estimate)
{
var test = estimate.Login.CompanyProfileID;
...
我可以在视图中访问 Model.Login 及其所有属性,所以我知道它正在正确地传递给视图。当我的表单提交时,它只是不会将导航属性传递回控制器。