Создание моделей представления для описания ваших User
и Feature
объектов. Затем вы можете использовать шаблон редактора для отображения флажка.
public class UserFeatureViewModel
{
public string Name { get; set; }
public IEnumerable<FeatureViewModel> Features { get; set; }
}
// and the FeatureViewModel
public class FeatureViewModel
{
public string Name { get; set; }
public bool IsSelected { get; set; }
}
Я сказал build , так что сделайте это в вашем контроллере, просмотрите модель фабрики или сервис. Экземпляры Feature
здесь жестко запрограммированы, но вы хотите получить их из базы данных:
public class UserController : Controller
{
public ActionResult GetUser(string username)
{
var model = new UserFeatureViewModel
{
Name = username,
Features = new[]
{
new FeatureViewModel { Name = "Feature abc", IsSelected = true },
new FeatureViewModel { Name = "Feature def", IsSelected = false },
new FeatureViewModel { Name = "Feature xyz", IsSelected = true }
}
};
return View(model);
}
}
Вы можете использовать последующие действия с UserFeatureViewModel
параметрами для обновления и т. Д.
Наконец, шаблон редактора в ~/Views/User/EditorTemplates/FeatureViewModel.cshtml
будет наследовать FeatureViewModel
и использовать помощник Html.CheckBoxFor
:
@model FeatureViewModel
<span>@Model.Name</span>
<span>@Html.CheckBoxFor(model => model.IsSelected)</span>
В вашей форме (в «родительском» представлении) используйте помощник EditorFor
для визуализации частичного
@Html.EditorFor(model => model.Features)