私は以下のクラスを持っています:
public class ControllerSecurityModel
{
public string ControlleName { get; set; }
public string DisplayName { get; set; }
public List<ActionSecurityModel> actions { get; set; }
}
public class ActionSecurityModel
{
public string ActionName { get; set; }
public string DisplayName { get; set; }
public bool IsChecked { get; set; }
}
とモデル:
public class PageRoleModel
{
public List<ControllerSecurityModel> AllPages { get; set; }
public List<ControllerSecurityModel> SelectedPage { get; set; }
}
「ActionSecurityModel」ごとにチェックボックスが必要な場合は、ビューの下に書き込みます。
<% using (Html.BeginForm())
{%>
<% foreach (var cont in Model.AllPages)
{%>
<fieldset>
<legend>
<%= cont.DisplayName %></legend>
<% foreach (var act in cont.actions)
{%>
<%: Html.CheckBoxFor(x => act.IsChecked) %>
<%: Html.Label(act.DisplayName) %>
<% } %>
</fieldset>
<% } %>
<input type="submit" value="save"/>
<% } %>
そして、これは私のコントローラーアクションです:
public ActionResult SetRole()
{
PageRoleModel model = new PageRoleModel();
return View(model);
}
[HttpPost]
public ActionResult SetRole(PageRoleModel model)
{
return View(model);
}
しかし、フォームを送信すると、モデルはnullですか? チェックボックスを送信して保存するにはどうすればよいですか?