私が取り組んでいるプロジェクトのテストページを作成しており、これまでのところ望ましい進歩を遂げていますが、ビューに渡されるリストのモデルから 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と非同期のこと全体に慣れていないので、これを行うためのより良い方法があれば、アドバイスをいただければ幸いです。