【发布时间】:2015-02-17 01:16:59
【问题描述】:
我想将一个 List 绑定到 CheckBox 并获取选定的值。我需要显示两个这样的 Checkbox 表,并且必须检索这两个 ID。
下面是我的视图模型
public partial class ViewModel_Role_Security
{
public List<Roles> oRoleMaster { get; set; }
public List<Securities> oSecurityMaster { get; set; }
}
这三个都有这两个值 1.身份证 2. 名称(在这种情况下,对于角色 - ID、角色名称 | 对于证券 - ID、安全名称 ...) //添加 bool 类型的第三个属性 isselected 以便仅在复选框中工作,然后您将返回它 这些不有任何布尔值
通过使用此 ViewModel,我将使用以下方法绑定这些项目...
public ActionResult AddingRoleSecurity()
{
ListRoles = new List<Roles>();
ListSecurities = new List<Securities>(); //And then populate them with data ...
var model = new ViewModel_Role_Security();
model.oRoleMaster = ListRoles;
model.oSecurityMaster = ListSecurities;
return View(model);
}
我对应的cshtml文件是..
@model KnackWFM.BusinessEntities.ViewModel_Role_Security
@using (Html.BeginForm())
{
<div class="contentsecurity">
<div class="User_role">
<p class="Security_role">User Role</p>
@for (int i = 0; i < Model.oRoleMaster.Count; i++)
{
<input id="@Model.oRoleMaster[i].RoleID" name="@Model.oRoleMaster[i].RoleName" type="checkbox" value="@(Model.oRoleMaster[i].RoleName)" />
<label for="@Model.oRoleMaster[i].RoleID">@Model.oRoleMaster[i].RoleName</label>
<br />
@Html.CheckBoxFor(Model.oRoleMaster[i].RoleID.selec)
}
</div>
<div class="User_Page">
<p class="Security_role">Role Security</p>
@for (int i = 0; i < Model.oSecurityMaster.Count; i++)
{
<input id="@Model.oSecurityMaster[i].SecurityID" name="@Model.oSecurityMaster[i].SecurityName" type="checkbox" value="@(Model.oSecurityMaster[i].SecurityName)" />
<label for="@Model.oSecurityMaster[i].SecurityID">@Model.oSecurityMaster[i].SecurityName</label>
<br />
}
</div>
<div class="bottombuttonsecurity">
<button type="submit" id="btnSave" name="Command" value="Save" style="background-color: #3d3c4c;border-radius: 8px;color: white;padding: 5px;border: 1px solid #3d3c4c;">Save</button>
</div>
</div>
}
为此我得到以下输出,
我希望将检查的值作为模型。
我有一个这样的 HttpPost 方法,但它返回空值。
[HttpPost]
public ActionResult AddingRoleSecurity(ViewModel_Role_Security model)
{
return View();
}
请告诉我如何获取模型中的签入值?
非常感谢!
【问题讨论】:
-
复选框值怎么可以是字符串类型?复选框值应始终为真或假。为什么要将字符串类型绑定到复选框?
-
在 AdditionalRoleSecurity 操作方法中,您提到了模型为 ViewModel_Role_Security 并且在您的视图中您提到模型名称为 ViewModel_User_Role_Security_Page 那些拖车彼此不匹配这是我认为的问题
-
嗨,我想从选择中获取选定的 IdS。当模型没有任何布尔值时,我将如何设置模型的值
-
@Aravindan 谢谢,那是一个错字……那不是问题
-
使用包含
bool IsSelected属性的Roles和Securities的视图模型,以便您可以在集合中正确使用强类型帮助器
标签: c# asp.net-mvc asp.net-mvc-4 checkboxlist