空检查在Razor中无法正常工作

时间:2015-12-17 13:10:25

标签: c# asp.net-mvc razor asp.net-mvc-5

我有这些模特:

public class Project
{
    public int ProjectID { get; set; }
    public string ProjectTitle { get; set; }
    public string ProjectDetails { get; set; }
    public Bid SelectedBid { get; set; }

    public virtual ICollection<Bid> Bids{ get; set; }

}
public class Bid
{
    public int BidID { get; set; }
    public string BidTitle { get; set; }
    public string BidDetails { get; set; }

    public virtual Project Project { get; set; }
}

我有这把剃刀:

@if(Model.SelectedBid == null)
{
   <dt>
      Status : 
   </dt>

   <dd>        
      Bid not Selected
   </dd>
}
else
{
   <dt>
      Status : 
   </dt>

   <dd>
      Bid Selected.
   </dd>    
}

在View中进行调试时,Model选择了这个出价:

  

base =   {} System.Data.Entity.DynamicProxies.Bid_88FA74D99E4E553A1039D70D55E452C7931E74DCCCA8B5237C0A208B12CCA8C4   但它仍然接受零情况。

这是我的控制器:

 public ActionResult Details(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Project project = db.Projects.Find(id);
        return View(project);
    }

你能告诉我这段代码有什么问题吗?感谢。

1 个答案:

答案 0 :(得分:3)

在您的操作方法中尝试此操作:

Project project = db.Projects
    .Include(p=>p.SelectedBid)
    .FirstOrDefault(p=>p.ProjectID==Id);

另外,不要忘记添加System.Data.Entity命名空间。