2015-04-01 118 views
0

我有一个问题,试图从我的[HttpPost]控制器中的单选按钮列表中读取选定的值。任何帮助将不胜感激。MVC单选按钮列表网格

Sample View

我的模型如下:

public partial class RoleModel 
{ 
    public Guid RoleId { get; set; } 

    public string Description { get; set; } 

    public List<RoleModuleAccessRight> RoleModuleAccessRights { get; set; } 
} 

public class RoleModuleAccessRight 
{ 
    public string ModuleName { get; set; } 
    public int ModuleId { get; set; } 
    public bool HasFullControl { get; set; } 
    public bool HasReadOnly { get; set; } 
    public bool HasNoAccess { get; set; } 
} 

我的控制器:

[HttpGet] 
public ActionResult Edit(Guid id) 
    { 
     RoleModel role = BusinessLayer.UserManager.GetRoleModel(id); 

     role.RoleModuleAccessRights = BusinessLayer.UserManager.GetModulesForRoleId(role.RoleId); 
     return PartialView("_Edit", role); 
    } 

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Edit(RoleModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      BusinessLayer.UserManager.UpdateAccessRights(model); 
      string url = Url.Action("List", "Roles"); 
      return Json(new { success = true, url = url }); 
     } 
     return PartialView("_Edit", model); 
    } 

我的视图代码:

@foreach (RoleModuleAccessRight item in Model.RoleModuleAccessRights) 
      { 
       @Html.HiddenFor(model => item.ModuleId) 
       string radioName = string.Format("RoleModuleAccessRights_{0}", item.ModuleId.ToString()); 
       <tr> 
        <td>@item.ModuleName</td> 
        <td> 
         <div class="checkbox"> 
          @Html.RadioButton(radioName, item.HasFullControl, item.HasFullControl) 
         </div> 
        </td> 
        <td> 
         <div class="checkbox"> 
          @Html.RadioButton(radioName, item.HasReadOnly, item.HasReadOnly) 
         </div> 
        </td> 
        <td> 
         <div class="checkbox"> 
          @Html.RadioButton(radioName, item.HasNoAccess, item.HasNoAccess) 
         </div> 
        </td> 
       </tr> 
      } 

问题具有即时通讯是当我张贴表单我无法获取我的[HttpPost]控制器中的信息。它返回“空” enter image description here

的标记生成如下: enter image description here

回答