Asp.net mvc 3 选择外键后读取相关数据-MVC3和EF4

Asp.net mvc 3 选择外键后读取相关数据-MVC3和EF4,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,我是MVC和EF的新手,我有一个问题。 我已经建立了一个模型,视图,控制器等网站。 在一个案例相当大的模型的编辑视图上,所以我不会在这里发布它。我有一个使用CustomerID的客户模型的FK。当用户从下拉列表中选择客户id时,我希望在选择id后显示CustomerName、CustomerPhone等。我想我可能需要回发一篇文章才能使其正常工作 此外,我是否需要将相关实体包括在初始数据中?我已经读了一些关于这方面的细节,但我不完全理解这需要如何工作 请让我知道,如果我应该张贴更多的信息。谢谢

我是MVC和EF的新手,我有一个问题。 我已经建立了一个模型,视图,控制器等网站。 在一个案例相当大的模型的编辑视图上,所以我不会在这里发布它。我有一个使用CustomerID的客户模型的FK。当用户从下拉列表中选择客户id时,我希望在选择id后显示CustomerName、CustomerPhone等。我想我可能需要回发一篇文章才能使其正常工作

此外,我是否需要将相关实体包括在初始数据中?我已经读了一些关于这方面的细节,但我不完全理解这需要如何工作

请让我知道,如果我应该张贴更多的信息。谢谢

这是我要编辑的操作结果

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.IncludeCustomers 是我试图用来加载相关客户数据并在编辑视图中显示的内容,如下所示:

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

这取决于你想做什么。您可以包含一个模型,该模型保存所有必需的数据,并在该页面上的每次调用中发送数据 选择客户后,请发回并将customerId发送到应用程序,然后返回与所需型号相同的页面。 您也可以通过AJAX实现这一点

此外,我是否需要将相关实体包括在初始数据中


不知道我是否明白你想说什么。您的意思是您认为必须将所有客户数据发送到页面,并在客户端选择相关数据?

谢谢。我尝试做的第一件事是基于FK加载相关数据。请参阅我的问题编辑,我在其中添加了一个名为Edit的ActionResult。如果要将所有客户发送到客户端,则必须通过javascript选择正确的客户,如:var customers=@Html.Raw Json.EncodeModel.customers;然后,您可以使用javascript迭代客户并选择所需的客户