2017-06-02 5 views
1

私はアンケートアプリケーションを作成しています。ランダム質問を読み込んでユーザーから回答を得る必要があります。 ボタンを使用してレコードを繰り返し処理する方法を知りたい。 私は、ビューにforeach/forループを使ってデータを表示する方法を知っていますが、一度に1つの質問を表示し、回答を得て、リストに格納し、 "次へ"次の質問の記録をユーザーに提示する必要があります。 この点について私は助けていただければ幸いです。おかげさまで 私はここに私のサンプルコードを添付しました:mvc 5でIEnumerableを反復する方法foreachまたはforループなしで表示

VIEWモデルクラスを:

public class ExamViewModel 
{ 
    public IEnumerable<Question> QuestionsList { get; set; } 
    public string Heading { get; set; } 

    public Question GetQuestionAtIndex(IEnumerable<Question> questionsList, int index = 0) 
    { 
     return questionsList.ElementAt(index); 
    } 
} 

VIEW:私はちょうどロードその例でhttps://dotnetfiddle.net/xKdwlK

<h2>@Model.Heading</h2> 
<div class="panel-body"> 
     @{ 
      int index = 0; 
      var question = Model.GetQuestionAtIndex(Model.QuestionsList, index); 
     } 
     <div class="form-group"> 
      <div class="col-sm-8"> 
       <ul class="list-group"> 
        <li class="list-group-item list-group-item-heading list-group-item-warning"> 
         @question.QuestionText 
        </li> 
       </ul> 
      </div> 
     </div> 
</div> 
+0

あなたはJavaScriptでこれをすべてやっていますか、そのたびに答えをサーバーに送信しますか? – nurdyguy

+0

それぞれの回答結果をリストに保存し、テスト全体の最後にそのリストを提出します。 (10の質問の後に言うことができます) – Aleem

+0

これはちょうどjavascriptで配列に答えを格納し、最後にフォーム提出またはajax経由でそれを提出するように思えます。おそらく最初にすべての質問を読み込み、jqueryを使用して個々の質問を表示/非表示にしたいと思うでしょう。 – nurdyguy

答えて

0

ここでは、基本的な概要でありますすべての答えを配列に格納し、ajaxを使用してコントローラに送信します。私はコントローラーの保存方法を書いていませんでしたが、あなたがそこに必要なものが何であるか分かりませんが、それを記入することができます。

これは単なる1つの方法ですが、ajaxの代わりにフォームを使用することもできます。

+0

あなたのリンクをクリックするとエラー404が発生します。ページが見つかりません! –

+0

リンクは ですhttps://dotnetfiddle.net/xKdwlK 私は編集セクションから入手しました。 – Aleem

+0

それは私のために働いてくれてありがとう。 私はそれに修正を加えます。 :) – Aleem

関連する問題