Lia*_*amB 5 checkbox asp.net-mvc asp.net-mvc-2
好的,我有一个基于角色的权限系统,并希望管理员能够编辑每个角色的权限.要做到这一点,我需要加载大量的复选框,但是我很难从View中获取返回数据
请注意:我环顾四周,我发现了类似的问题,但截至目前尚无法找到解决方案.
<%
Html.BeginForm();
string lastGroup = "";
foreach (var CurPermission in Model)
{
%>
<%=Html.CheckBox("Permissions", CurPermission.Checked, new { ID = CurPermission.PermissionId}) + " " + CurPermission.PermissionValue%>
<br />
<%
}
%>
<input type="submit" value="Submit" />
<%
Html.EndForm();
%>
Run Code Online (Sandbox Code Playgroud)
和控制器,
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditPermissions(String[] Permissions)
{
foreach (var CurPermission in Permissions)
{
Debug.WriteLine(CurPermission);
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
显然,我需要知道哪些盒子没有被检查,以及那些盒子.但是在返回值中因为整体("真,假"),我无法找出哪个值与哪个复选框相关.
任何关于修复或预选的替代方法的建议都会受到关注.
mat*_*uma 11
以下是我们用于将成员分配给项目的一些代码片段,希望这可以帮助您解决问题!
在视图中我们有:
<p>
<label>
Select project members:</label>
<ul>
<% foreach (var user in this.Model.Users)
{ %>
<li>
<%= this.Html.CheckBox("Member" + user.UserId, this.Model.Project.IsUserInMembers(user.UserId)) %><label
for="Member<%= user.UserId %>" class="inline"><%= user.Name%></label></li>
<% } %></ul>
</p>
Run Code Online (Sandbox Code Playgroud)
在控制器中我们有:
// update project members
foreach (var key in collection.Keys)
{
if (key.ToString().StartsWith("Member"))
{
int userId = int.Parse(key.ToString().Replace("Member", ""));
if (collection[key.ToString()].Contains("true"))
this.ProjectRepository.AddMemberToProject(id, userId);
else
this.ProjectRepository.DeleteMemberFromProject(id, userId);
}
}
Run Code Online (Sandbox Code Playgroud)
使用Html Checkbox Helper时要记住的主要事情是使用contains()来确定true或false.
| 归档时间: |
|
| 查看次数: |
10757 次 |
| 最近记录: |