ASP实体框架显示来自另一个模型的数据

时间:2014-06-15 23:00:50

标签: c# asp.net asp.net-mvc entity-framework razor

我有一个名为TestAnswer的表和一个名为问题的表

这是Entity Framework创建的创建脚本。我添加了一些viewbags

ViewBag.TestAnswerQuestion将问题表中的值作为选择列表。我想将它们显示为普通文本,例如TestAnswer的剃刀视图中的@ Html.DisplayFor(model => model.QuestionText)

如何在TestAnswer创建视图中显示问题

// GET:/ TestAnswer / Create         public ActionResult Create()

    {


        ViewBag.CurrentTestUser = User.Identity.Name;
        ViewBag.CurrentTestUserId = User.Identity.GetUserId();
        **ViewBag.TestAnswerQuestion = new SelectList(db.Questions.Where(t => t.QuestionID == 2), "QuestionID", "QuestionText");**
        ViewBag.TestAnswerTestID = new SelectList(db.Tests, "TestID", "TestUser");
        return View();


    }

1 个答案:

答案 0 :(得分:0)

从Controller操作方法返回时,您似乎需要将模型传递回View。

如果我理解正确,您希望将Question实体返回到TestAnswer / Create视图,可能是这样的:

var model = db.Questions.Find(t.QuestionID);
...
return View(model);

然后您可以从视图模板中引用模型:

@Html.DisplayFor(model => model.QuestionText)

如果您想显示问题的答案的选择列表,您的问题实体可以将答案实体的集合作为公共属性,然后您可以简单地从问题导航到其答案。

我能给你的最好的建议是仔细考虑实体及其关系,并将它们建模为POCO类。根据您要实现的目标,您可能需要返回视图模型,何时将实体模型转换为针对视图优化的另一种形式。