я следующая формой в виде:Использования CheckBoxFor в форме
@using (Html.BeginForm("Subscriptions", "Group", new { id = Model.Id, slug = Model.Slug, Groups = Model.Groups, Names = Model.SelectedNames, SelectedMemberEmail = Model.SelectedMember.EmailAddress, WhichView = "Subscriptions", }, FormMethod.Post))
{
<div id="communitygroupsedit" class="list-unstyled">
@for (var x = 0; x < Model.Groups.Count; x++)
{
if (Model.Groups[x].Name == "All members")
{
Model.Groups[x].AdminOnly = true;
}
string adminTest = (Model.Groups[x].AdminOnly && !Model.IsUserAdministrator) ? "disabled=\"disabled\"" : string.Empty;
string checktest = Model.Groups[x].IsMember ? "checked=\"checked\"" : string.Empty;
<p>
@Html.CheckBoxFor(m => m.Groups[x].IsMember, new { @adminTest @checktest})
@Html.Raw(Model.Groups[x].Name + " - " + Model.Groups[x].Description)
@if (adminTest == "disabled=\"disabled\"" && !Model.IsUserAdministrator && checktest == "checked=\"checked\"")
{
Model.SelectedNames.Add(Model.Groups[x].Name);
}
</p>
}
</div>
if (Model.Groups.Count > 0)
{
@Html.SubmitButton("Update groups", false, new { @class = "btn btn-primary" });
}
Проблема заключается в том, что в контроллере, «Группа» список объекты пусты, и в представлении, флажки не быть если условие выполнено. Также свойство selectednames не заполняет список «Имена» по мере необходимости. Что я делаю неправильно в этой форме?
ИМХО вы делаете так много обработки в представлении, трудно понять, что происходит. Такие вещи, как adminTest & checktest, действительно должны быть в контроллере. – markpsmith