选择外键后读取相关数据 - MVC3和EF4

时间:2012-06-19 14:25:54

标签: asp.net-mvc-3 entity-framework

我是MVC和EF的新手,我有一个问题。 我建立了一个带有模型视图控制器等的站点。 在Case的编辑视图(相当大的模型,所以我不会在这里发布)我有一个FK到Customer模型使用CustomerID。当用户从下拉列表中选择客户ID时,我想在选择ID后显示CustomerName,CustomerPhone等。我想我可能需要回复一段时间才能发挥作用?

另外,我是否需要将相关实体作为初始数据“get”的一部分包含在内?我已经阅读了一些有关详细信息但我并不完全理解这需要如何工作。

如果我要发布更多信息,请告诉我。谢谢!

这是我的ActionResult for Edit

public ActionResult Edit(int id)
    {
        Cases cases = db.Cases.Find(id);

        //related data needs to loaded to show related data fields
        //include related data entities
        var v = db.Cases.Include("Customers");

        ViewBag.TechnicianID = new SelectList(db.Technicians, "TechnicianID", "LastName", cases.TechnicianID);
        ViewBag.BranchID = new SelectList(db.Branches, "BranchID", "BranchName", cases.BranchID);
        ViewBag.EngineModelID = new SelectList(db.EngineModels, "EngineModelID", "EngineModelName", cases.EngineModelID);
        ViewBag.CaseCategoryID = new SelectList(db.CaseCategories, "CaseCategoryID", "CategoryName",cases.CaseCategoryID);
        ViewBag.Qualified = new SelectList(new[] { "YES", "NO", "PARTIALLY" });
        ViewBag.CaseStatus = new SelectList(new[] { "OPEN/IN PROCESS", "CLOSED" });
        return View(cases);
    }

这条线     var v = db.Cases.Include(“Customers”) 是我试图用来加载相关的客户数据,然后在我的编辑视图中显示如下:

@Html.EditorFor(model => model.Customer.CustomerName)

1 个答案:

答案 0 :(得分:0)

这取决于你想要做什么。您可以包含一个模型,其中包含所有必需的数据,并在该页面上的每次调用时发送它(初始空的路径) 选择客户后,请进行回复并将customerId发送到您的应用程序,并返回具有所需模型的同一页面。 你也可以通过AJAX做到这一点。

  

另外,我是否需要将相关实体作为初始数据“get”的一部分包括在内?

不确定我是否理解你想说的话。您的意思是您认为您必须将所有客户的数据发送到页面并在客户端选择相关数据?