1

私が取り組んでいるプロジェクトのテストページを作成しており、これまでのところ望ましい進歩を遂げていますが、ビューに渡されるリストのモデルから TextBoxes を作成しようとしていますが、それはただのようです私が試したことはすべて無視してください。

<form id="form1" runat="server">
    <input id="btnsubmit" type="submit" name="Submit" onclick="Submit" />
    <div id="divControls">
     <% foreach (TextBox control in (this.Model as List<TextBox>))
        {
            Html.Label("lblLabel", control.Text);
            Html.TextBox(control.ID, control.Text, new { id = control.ID, style = "width:50", name = "txt" + control.ID });
        } %>
    </div>
</form>

リストは、返されたコントローラーで null ではありません。何が問題なのか見当がつきません。私が投げたら

何か

for ループでは適切な回数実行されるのに、なぜラベルやテキスト ボックスを作成しないのでしょうか? 最初はフォーム内に追加していると思っていましたが、フォームタグを削除しましたが、それでもうまくいかなかったので、本当にアイデアがありません。助けていただければ幸いです。私はMVCに比較的慣れていません。

[HttpPost]
        public ActionResult Index(FormCollection form)
        {
            List<TextBox> controls = new List<TextBox>();
            foreach (String Key in form.Keys)
            {
                if (Key.Contains("txt"))
                {
                    TextBox textBox = new TextBox();
                    textBox.ID = Key;
                    textBox.Text = form.GetValues(Key)[0];
                    controls.Add(textBox);
                }
            }
            return View("Index", controls);
        }

これが私のアクションケースです。また、私が十分に明確ではなかった場合、JQueryを使用して実行時にコントロールをフォームに追加しています。その後、そのアクションは送信の一部になるため、テキストボックスをビューに送り返して削除されないようにする必要があります。私が言ったように、私はMVCと非同期のこと全体に慣れていないので、これを行うためのより良い方法があれば、アドバイスをいただければ幸いです。

4

2 に答える 2

1

あなたはhtmlを印刷していません

<% foreach (TextBox control in (this.Model as List<TextBox>))
        {%>
            <%=Html.Label("lblLabel", control.Text)%>
            <%=Html.TextBox(control.ID, control.Text, new { id = control.ID, style = "width:50", name = "txt" + control.ID })%>
<%        } %>

あなたのコードはコントロールをループしておりHtml.whaterever、文字列を返していますが、何もせずに破棄しています。

TextBoxオブジェクト全体を返す必要もありません。これはおそらく非効率的です。データを含むstructまたはを返すだけですclass

于 2012-10-24T15:58:14.370 に答える
0

Html.Label<label>タグを含む文字列を返します。
その文字列を破棄しています。

を書いてページに書き込む必要があります<%= Html.Whatever() %>

于 2012-10-24T15:58:02.987 に答える