2014-06-15 73 views
0

我有一個名爲TestAnswer的表和一個叫做問題ASP實體框架顯示來自另一個模型的數據

這是由實體框架創建的創建腳本。我添加了一些查看包

ViewBag.TestAnswerQuestion將問題表中的值作爲選擇列表提供給我。我想將它們顯示爲正常文本,例如@ Html.DisplayFor(型號=> model.QuestionText)在TestAnswer

我Razor視圖我怎樣才能獲得這些問題在我TestAnswer顯示創建視圖

// GET:/ TestAnswer /創建 公衆的ActionResult創建()

{ 


     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(); 


    } 
+0

實體模型中的每個問題都有多個答案嗎?您似乎在代碼行的Where子句中選擇了一個問題 - 您是否打算選擇多個問題? – saille

+0

只是一個問題。每個問題有4個答案存儲在同一個表中。在測試答案中只有一個答案是正確的 – user3487020

回答

0

看起來像從Controller動作方法返回時需要將模型傳遞迴您的視圖。

如果我理解正確的話,你想一個問題的實體返回到您TestAnswer /創建視圖,也許是這樣的:

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

那麼你可以參考一下從視圖模板的模型:

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

如果您想顯示問題答案的選擇列表,您的問題實體可以將答案實體的集合作爲公共屬性,那麼您可以簡單地從問題導航到其答案。

我可以給你的最好建議是仔細考慮實體和他們的關係,並將它們作爲POCO類來建模。根據您想要實現的內容,您可能希望返回視圖模型,何時將實體模型轉換爲針對View優化的另一個表單。

+0

謝謝賽爾。我擁有的是一系列問題。問題表有QuestionText,AnswerA,AnswerB,AnswerC,AnswerD。我有一個名爲TestAnswer的單獨表格。我在TestAnswer和Question之間的模型中加入。 TestAnswer存儲QuestionID。我的計劃是在顯示var model = db.Questions.Find(t.QuestionID);時生成一個隨機問題。然後我想在創建TestAnswer視圖中顯示它。如果我使用「測試應答視圖」並說「返回視圖(模型)」;我收到一個錯誤。 EF自動代碼顯示返回View(),但是當我添加模型時失敗 – user3487020