我有一个带有一些文本字段的表单来填写项目的数据。在这个表格上,我想从我的数据库中放置所有可能的类别。我创建了一个视图模型,如这个问题的答案所示:
当我渲染我的页面时,所有的 ID 都会显示,而不是每个元素的复选框。这是我的一些代码。
public ActionResult Metcat()
{
var projectCategoriesViewmodel = new ProjectCategory { Categories = PopulateCategories() };
return View(projectCategoriesViewmodel);
}
private ICollection<AssignedCategory> PopulateCategories()
{
var categories = Adapter.CategoryRepository.GetAll()
var assignedCategories = new List<AssignedCategory>();
foreach (var cat in categories)
{
assignedCategories.Add(new AssignedCategory
{
CategoryID = cat.CategoryID,
CategoryName = cat.CategoryName,
Assigned = false
});
}
return assignedCategories;
}
CSHTML文件
@model ProjectCategory
@using Freelauncher.Models
<h2>Metcat</h2>
@using (Html.BeginForm("CreateProject", "Category", FormMethod.Post))
{
@Html.ValidationSummary(true)
<fieldset>
@Html.DisplayFor(model => model.Project.ProjectTitle)
@Html.EditorFor(model => model.Project.ProjectDescription-
@Html.EditorFor(model => model.Categories)
</fieldset>
<p>
<input type="submit" value="Create" />
</p>
}
如您所见,viewModel 填充了所有类别
输出
如果需要更多代码或解释,我会立即回答,但我认为所有必要的信息都可用。