Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP实体框架显示来自另一个模型的数据_C#_Asp.net_Asp.net Mvc_Entity Framework_Razor - Fatal编程技术网

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

C# ASP实体框架显示来自另一个模型的数据,c#,asp.net,asp.net-mvc,entity-framework,razor,C#,Asp.net,Asp.net Mvc,Entity Framework,Razor,我有一张名为TestAnswer的桌子和一张名为question的桌子 这是实体框架创建的创建脚本。我添加了一些视图包 ViewBag.TestAnswerQuestion将问题表中的值作为选择列表提供给我。我想在TestAnswer的razor视图中将它们显示为普通文本,例如@Html.DisplayFormodel=>model.QuestionText 如何在TestAnswer create视图中显示问题 //获取:/TestAnswer/Create 公共行动结果创建 {

我有一张名为TestAnswer的桌子和一张名为question的桌子

这是实体框架创建的创建脚本。我添加了一些视图包

ViewBag.TestAnswerQuestion将问题表中的值作为选择列表提供给我。我想在TestAnswer的razor视图中将它们显示为普通文本,例如@Html.DisplayFormodel=>model.QuestionText

如何在TestAnswer create视图中显示问题

//获取:/TestAnswer/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();


    }

从控制器操作方法返回时,似乎需要将模型传递回视图

如果我理解正确,您希望将问题实体返回到TestAnswer/Create视图,可能类似于:

var model = db.Questions.Find(t.QuestionID);
...
return View(model);
然后,可以从视图样板中引用模型:

@Html.DisplayFor(model => model.QuestionText)
如果要显示问题答案的选择列表,则问题实体可以将答案实体集合作为公共属性,然后只需从问题导航到其答案


我可以给你最好的建议是仔细考虑实体和它们之间的关系,并把它们建模为POCO类。根据您试图实现的目标,您可能希望返回一个视图模型,当您的实体模型转换为针对该视图优化的另一种形式时。

实体模型中的每个问题都有多个答案吗?您似乎在突出显示的代码行的Where子句中选择了一个问题-您是否打算选择多个问题?只有一个问题。每个问题有4个答案存储在同一个表中。在测试答案中,只有一个答案是正确的。我有一个问题清单。问题表包含问题文本、答案A、答案B、答案C、答案D。我有一张单独的桌子叫TestAnswer。我加入了TestAnswer和Question之间的模型。TestAnswer存储问题ID。我的计划是在显示var model=db.Questions.Findt.QuestionID;时生成一个随机问题;。然后我想在createtestanswer视图中显示它。如果我使用测试答案视图并说返回视图模型;我犯了一个错误。EF自动代码显示返回视图,但当我添加模型时失败