【发布时间】:2013-01-23 12:40:44
【问题描述】:
我有一个包含复选框和提交按钮的视图,如下所示。
@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 包含一些其他数据...
现在我如何访问控制器中的复选框值? 注意:当我点击提交按钮时,我有更多信息需要发送到控制器......有人可以提出一些解决方案......
答案:
我已将这两个属性添加到我的模型中
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
【问题讨论】:
-
感谢大家的帮助...我得到了答案...我已经更新了答案。请参考如果有人想要...再次感谢。 :)
标签: c# asp.net-mvc asp.net-mvc-3