モデルを含むビューで特定のフォームを表示する必要があります。モデルはそのようなものです:私は必要なものをいっぱいビューのオブジェクトリストをフォームとしてモデルをレンダリングするにはどうすればいいですか?
これが最終的なオブジェクトである:
public class ObjetTotal
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Numero { get; set; }
public string Value { get; set; }
}
私は2つの貴様の部分にフォームをカットすることを選択する:
- まず「静」の部分ここでは、ユーザは、異なるObjetsTotalに共通の値を設定できます。
- 第2に、異なる変数ObjetsTotalに対してユーザーが異なる値を入力する「可変」部分。
最後の目的は、ユーザーがすべてのオブジェクトObjetTotalに対して同じことを入力する必要がないことです。
したがって、フォームの異なる部分を表す他のオブジェクトを作成します(わかりません)。
MainObjetの静的部分とNumbersの可変部分。私はこれら2つのオブジェクトを、 "MainObjet"と "Numbers"のリストを含む他のオブジェクト "Mix"に入れます。
public class MainObjet
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class Numbers
{
public string Numero { get; set; }
public string Value { get; set; }
}
public class Mix
{
public MainObjet obj { get; set; }
public IEnumerable<Numbers> num { get; set; }
public Mix()
{
obj = new MainObjet();
num = new List<Numbers>();
}
}
次に、フォームの2つの部分を持つビューで、モデルミックスをレンダリングします。
私はこれを試してみました:
[HttpPost]
public ActionResult Test(Mix obj)
{
return View();
}
は、あなたがどのように行うために私を説明できます:
しかし、私はこののActionResultのオブジェクトミックスのヌルを取得提出した後
@model App.Models.Mix
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Mix</legend>
<h3>First Properties</h3>
<div>
@Html.TextBoxFor(model => model.obj.Id);
@Html.TextBoxFor(model => model.obj.Name);
@Html.TextBoxFor(model => model.obj.Description);
</div>
<div>
<table>
@for (int i = 0; i < 5; i++)
{
<tr>
<td>
@Html.TextBoxFor(model => model.num[i].Numero)
</td>
<td>
@Html.TextBoxFor(model => model.num[i].Value)
</td>
</tr>
}
</table>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
それ ?私は間違っているかもしれません。
フォームのデザインは考慮しないでください。Numbersに入れるのに適したタイプはわかりません。単純なリストで十分でしょう。
投稿メソッドのパラメータの名前が、プロパティの1つと同じであるためです。それを他のものに変更すれば、それはうまく束縛されます。 –