選択したチェックボックスの値のリストを取得したい。どうすればいいですか?私はASP.NET MVC 5アプリを開発しています。このアプリは基本的なフォームを持っています。 asp.net mvcで選択したチェックボックスの値のリストを取得
マイビューコード
@using (Html.BeginForm())
{
<table class="table">
<thead>
<tr>
<th>Field Name</th>
@foreach (var field in Model.Actions)
{
<th>@field.Name</th>
}
</tr>
</thead>
<tbody>
@foreach (var permission in Model.PermissionUserField)
{
<tr>
<td> @permission.Field.Name</td>
@foreach (var peruserAction in permission.PermissionUserFieldActions)
{
<td>
@if (peruserAction.Active)
{
@Html.HiddenFor(x=> x.PermissionUserFieldForUser)
<input type="checkbox" checked name="[email protected](permission.FieldId)_[@peruserAction.Id]" />
}
else
{
<input type="checkbox" name="[email protected](permission.FieldId)_[@peruserAction.Id]" />
}
</td>
}
</tr>
}
</tbody>
</table>
<br />
<input type="submit" value="Save" />
}
私のフォームのためのモデルは、以下のようになります。
私のコントローラのコードpublic class NewViewModel
{
public List<PermissionUserField> PermissionUserField{ get; set; }
public List<PermissionUserField> PermissionUserFieldForUser { get; set; }
public List<Action> Actions { get; set; }
public List<Field> Field { get; set; }
}
public partial class Action
{
public int Id { get; set; }
[StringLength(50)]
public string Name { get; set; }
}
public partial class PermissionUserField
{
public int Id { get; set; }
public int UserId { get; set; }
public User User { get; set; }
public int FieldId { get; set; }
public Field Field { get; set; }
public List<PermissionUserFieldAction> PermissionUserFieldActions { get; set; }
}
public partial class PermissionUserFieldAction
{
public int Id { get; set; }
public int ActionId { get; set; }
public Action Action { get; set; }
public int PermissionUserFieldId { get; set; }
public PermissionUserField PermissionUserField { get; set; }
public bool Active { get; set; } = false;
}
:
を経由してコントローラにcheckedArrayを送ることができないことをあの...あなたはあなたのコントローラのコードを残しているように見えますか? –
Html.CheckBoxForを使用していない理由はありますか? – Neil
あなたはチェックボックスに 'value'を与えません。 http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943(参照してください。[この答え] - しかし、あなたは、コレクションのためにフォームコントロールを生成するために 'foreach'ループを使用することはできません)また、隠れた入力を複雑なオブジェクトにバインドすることもできません。 –