【问题标题】:ASP.Net MVC - Handle Multiple CheckboxesASP.Net MVC - 处理多个复选框
【发布时间】:2010-12-20 05:30:49
【问题描述】:

好的,我有一个基于角色的权限系统,并且希望管理员能够编辑每个角色的权限。为此,我需要加载很多复选框,但是我正在努力从视图中获取返回数据

请注意:我环顾四周,发现了类似的问题,但目前还没有找到解决方案。

 <%
     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();
%>

和控制器,

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult EditPermissions(String[] Permissions)
        {
            foreach (var CurPermission in Permissions)
            {
                Debug.WriteLine(CurPermission);
            }

            return View();
        }

显然,我需要知道哪些框未选中以及哪些框未选中。但是在返回值中,由于整体(“true,false”)我无法确定哪个值与哪个复选框相关。

任何关于修复或可能替代方法的建议都会被采纳。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-2 checkbox


    【解决方案1】:

    请务必查看 SO 上的 this 主题。

    【讨论】:

      【解决方案2】:

      以下是我们用于将成员分配给项目的一些 sn-ps 代码,希望对您有所帮助!

      在我们的视图中:

      <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>
      

      在控制器中我们有:

      // 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);
          }
      }
      

      使用 Html Checkbox Helper 时要记住的主要事情是使用 contains() 来确定真假。

      【讨论】:

      • 如何在视图模型中实现 IsUserInMembers?
      猜你喜欢
      • 2013-05-15
      • 2019-02-14
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多