2017-04-11 7 views
0

私はカミソリhtmlフォーム(ビュー)でローカル変数を宣言し、そのローカル変数にユーザ入力値を保存したいと思います。そしてforeachループでその変数を使いたいと思います。mvc 5私はasp.netを初めて使っています。asp.net mvc 5の(表示)ローカル変数にユーザー入力値を格納する方法?

それは2つのソリューションの1に適応しますしない限り、何をしようとしていることは動作しません
@using (Html.BeginForm("AddQuestion", "admin", new { id = ViewBag.qf_id }, FormMethod.Post)) 
{ 
@Html.AntiForgeryToken() 

<div class="form-group"> 
    <label>Question Statement</label> 
    @Html.TextBoxFor(a => a.Ques.QuestionString, new { @class = "form-control" }) 
    @Html.ValidationMessageFor(a => a.Ques.QuestionString) 
</div> 

<div class="form-group"> 
    <label>No. of option you want to add for this question </label> 
    <div class="col-md-4"> 
    @{var val = @Html.TextBoxFor(a => a.counter, new { @class = "form-control" }); } 


    </div> 
</div> 
     foreach(var item in val) 
     { 

      @Html.TextBoxFor(a=>a.Ans.AnswerStatement) 

     } 

<div> 
    <button class="btn btn-primary" type="submit">Add</button> 
</div> 
    } 
+0

私は良いアプローチを見ていません。ユーザーが何も入力しなかった場合はどうなりますか?そのためにDisplayTemplates/EditorTemplatesを使用する必要があります – Tushar

+0

複数のテキストボックスを表示するには、クライアント側のイベントで渡されたコントロール値を持つ 'EditorTemplates'を使用する方が良いでしょう。 –

+0

どうすれば自分のコードに組み込むことができますか? – bravo007

答えて

0

1)の使用は、その後、テキストボックスに値を入力した場合、この作品唯一の方法ですコントローラーにポストバックし、コントローラーはこの変数をモデルに入力します。モデル内の数値を使用して、ビューが再レンダリングし、必要な数のエントリーが表示されます。これはウェブ形式の方法であり、非効率的です。

2)JavaScriptを使用すると、ユーザーが数字を入力すると、JavaScriptはテンプレートフレームワークを使用してマークアップをレンダリングするか、サーバーにリクエストして個々のデータを取得し、部分ビューをHTMLとして返します。

+0

それは直接関係はありませんが、私は剣道とリストビューを使って同様のことをしていました。このブログの投稿が役立つかどうかはわかりませんが、おそらく統合を理解することは役に立つでしょうか? https://onallthingsweb.wordpress.com/2016/06/27/asp-net-mvc-and-client-side-lists-with-kendo/ –

+0

この種の仕事に対応するコード化された方法を教えていただけますか? – bravo007

関連する問題