私の Web アプリケーションには、管理者が一括で承認または拒否できる「要求」のリストを含むページがあります。したがって、ページは次のようになります。
[x] Request 1
[ ] Request 2
[x] Request 3
[ ] Request 4
[Approve Selected] [Deny Selected]
私のモデルは次のようになります。
public class RequestManagementModel
{
public List<string> LicenseIdsToProcess { get; set; }
public List<Resource> Resources { get; set; }
// additional fields
}
そして私の見解では、私は持っています:
int counter = 0;
@foreach (Resource r in Model.Resources)
{
<tr>
<td>
@Html.CheckBoxFor(model => model.LicenseIdsToProcess[counter++], new { value = r.RequestId })
</td>
</tr>
}
そしてもちろん、私のコントローラーアクションはフォーム投稿でモデルを受け入れます
public ActionResult ProcessRequests(RequestManagementModel model, ProcessType type)
{
// process requests here
}
したがって、ご想像のとおり、ビューでmodel.LicenseIdsToProcess[counter++]
「型 'string' を 'bool' に暗黙的に変換できません」というエラーが表示されます。単一の true/false ではなく、ユーザーが 1 つまたは複数の値を選択できる値のリストを表すためにチェックボックスを使用しようとしているという事実は気に入りません。
ユーザーが選択するすべてのチェックボックスに対して、フォームが投稿されたときにその文字列 ID 値がモデル内の ID のリストにバインドされるように、これを設定したいと思います。<input type="checkbox">
そこにチェックボックスの値を設定できるので、を使用するだけでそれを行う方法を知っています。しかし、Html.CheckBoxFor でそれを使用して、モデル バインディングを通じて強力な型指定を実現する方法はありますか?
ありがとう。