0

У меня проблема с чтением выбранных значений из списка переключателей в моем контроллере [HttpPost]. Любая помощь будет принята с благодарностью.MVC Radio Button List Grid

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

ответ

0

Глядя на ваш код, ваши идентификаторы не являются уникальными, которая собирается ломать вещи, а также с помощью специального шаблона можно упростить проблема. См. Этот пример https://stackoverflow.com/a/7668325

Еще одно общее изделие: Multiple radio button groups in MVC 4 Razor