以下に示すように、チェックボックスと送信ボタンを含むビューがあります。
@using (Html.BeginForm())
{
<fieldset>
<legend style="font-size: 100%; font-weight: normal">Delete</legend>
<p> Are you sure you want to delete?</p>
@foreach (string resource in resources)
{
if (resource != "")
{
<input type="checkbox" name="Resources" title="@resource" value="@resource" checked="checked"/>@resource
<br />
}
}
<br />
@Html.HiddenFor(m => m.AttendeeListString)
@Html.HiddenFor(m => m.ResourceListString)
<span class="desc-text">
<input type="submit" value="Yes" id="btnYes" />
</span>
<span class="desc-text">
<input type="submit" value="No" id="btnNo" />
</span>
</fieldset>
}
以下はコントローラーコードです...
public ActionResult DeleteResource(RoomModel roomModel)
{
...
}
RoomModelには他のデータが含まれています...
コントローラのチェックボックス値にアクセスするにはどうすればよいですか?注:送信ボタンをクリックしたときにコントローラーに送信する必要のある情報がたくさんあります...誰かが解決策を提案できますか...
答え :
これらの2つのプロパティをモデルに追加しました
public List<SelectListItem> Resources
{
get;
set;
}
public string[] **SelectedResource**
{
get;
set;
}
そして、私のビューのチェックボックスは次のように更新されました
@foreach (var item in Model.Resources)
{
<input type="checkbox" name="**SelectedResource**" title="@item.Text" value="@item.Value" checked="checked"/>@item.Text
<br /><br />
}
そしてコントローラーで..。
if (roomModel.SelectedResource != null)
{
foreach (string room in roomModel.**SelectedResource**)
{
resourceList.Add(room);
}
}
注:モデルのチェックボックスとプロパティの名前は同じである必要があります。私の場合はSelectedResourceです