以下の問題で多くの検索を行った後。最後にあなたと分かち合うことに決めました。 私は1つのモデルを持っています。ビューからコントローラへのPOSTリストコレクションMVC 4
public class EarlyBirdWeb
{
public string Client { get; set; }
[Display(Name = "Job Name")]
public string JobName { get; set; }
public List<SelectListItem> Reasons { get; set; }
public List<Status> status { get; set; }
public List<ETA> etas { get; set; }
[Display(Name="Call BU")]
public string CallBU { get; set; }
}
私はこのモデルをMVCビューにバインドしています。私の考えは次の通りです。
@model List<EarlyBird.Models.EarlyBirdWeb>
<form method="post">
@Html.AntiForgeryToken()
<div class="row">
<table class="table table-bordered table-inverse">
<tr class="bg-warning">
<th>Client
</th>
<th>Job Name
</th>
<th>Reason</th>
<th>Status</th>
<th>ETA</th>
<th>CallBU?
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@item.Client
@Html.Hidden(@item.Client)
</td>
<td>
@item.JobName
</td>
<td>
@Html.DropDownList("--Select One--", (IEnumerable<SelectListItem>)@item.Reasons)
</td>
<td>
<select>
@foreach (var status in item.status)
{
<option value="@status.StatusName">@status.StatusName</option>
}
</select>
</td>
<td>
<select>
@foreach (var etas in item.etas)
{
<option value="@etas.ETATime">@etas.ETATime</option>
}
</select>
</td>
<td>
@item.CallBU
</td>
</tr>
}
</table>
</div>
<div class="row">
<input type="submit" value="Submit" name="Submit" class="btn btn-warning" />
</div>
</form>
ここで、すべての詳細を入力して[送信]ボタンをクリックすると、コントローラにnullが表示されます。
私は、変更されたリストコレクションをコントローラでどのように入手できるのか教えてください。
おかげ..
(CSHTMLファイルの名前は、メソッドのために同じである)のIEnumerableを使用すると、あなたはrcshtmlファイルはMVC大会の法律を壊さないことを確認してみてください[ADO.NET DataTableへのHTMLテーブルの投稿](http://stackoverflow.com/questions/30094047/post-an-html-table-to-ado-net-datatable) –
「foreach」を使用することはできませんループを使用してコレクション項目のフォームコントロールを生成する(括弧を参照) –