2010-11-09 69 views
1

我有一個觀點,即輸出問題列表(yesno和多項選擇)。對於多項選擇問題,我想通過可能的多選答案,但我無法弄清楚如何傳遞2個查詢。有沒有辦法做到這一點,或更好地處理另一種方式?可以將2個Linq查詢傳遞給1個視圖嗎?

控制器代碼:

public ActionResult Test(int id) 
{ 
    var listofquestions = from m in db.vQuestionnaireQuestions 
          where m.Questionnaire_ID.Equals(id) 
          select m; 

    return View("Test", listofquestions.ToList()); 
} 

查看代碼:

<% foreach (var item in Model) 
{ %> 
<br /> 
    <%: item.Question_Text %> 

    <%if (item.Question_Type_ID == 1) //Yes-No Question 
    { %> 
     //Yes-No Stuffs 
    <% } 
    else if (item.Question_Type_ID == 2) //Multiple Choice 
    { %> 
    //Can I access a Linq query again here? 
     //I have Question_ID to use, but I don't think 
     //I can have 2 Models 

    <% } 
    else //All Else 
    { %> 
    //All Else Stuffs 
    <% } 
} %> 

編輯

我創建一個視圖模型類

視圖模型類代碼:

public IEnumerable<vQuestionnaireQuestion> FindAllQuestionnaireQuestionsTest() 
{ 
    return db.vQuestionnaireQuestions; 
} 

public vQuestionnaireQuestion GetQuestionnaireQuestionsTest(int id) 
{ 
    return db.vQuestionnaireQuestions.FirstOrDefault(q => q.Questionnaire_ID == id); 
} 

public IEnumerable<Multiple_Choice_Answers> FindAllMultipleChoiceAnswersTest() 
{ 
    return db.Multiple_Choice_Answers; 
} 

public Multiple_Choice_Answers GetMultipleChoiceAnswersTest(int id) 
{ 
    return db.Multiple_Choice_Answers.FirstOrDefault(q => q.Question_ID == id); 
} 

,並把它添加到我的觀點的繼承:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<QuestionnaireApp.Models.Questionnaire>>" %> 

模型信息似乎並沒有被使得它作爲我現在的所有item.fieldname的作爲回來沒有一個定義。我是否過分複雜呢?

回答

1

嘗試包裹導致視圖模型類,並傳遞到View

class SomeClassName { 
    IEnumerable<Question> ListOfQuestions; 
    IEnumerable<Answer> ListOfAnswers; 
} 
+0

我相信這就是答案。我將在下一個問題中深入探討一些問題。謝謝。 – JeffM 2010-11-11 19:23:38

0

許多人創建一個專門用於在控制器和視圖之間傳遞數據的類。這樣你可以定義你需要的任何屬性,並且你的類的一個實例可以很容易地在其中有一個或多個LINQ結果集。

相關問題