我和EF和MVC合作,给我带来了新的东西。 我有以下课程:
public class Client
{
[Key]
public int ClientId { get; set; }
public Category Category { get; set; }
}
我希望在与#34;创建"相关的视图中显示ActionResult,一个可选的DropDownList,包含所有类别,可以选择一个。
我还有一个ViewModel:
public class CategoryViewModel
{
public int SelectedCategoryId { get; set; }
public IEnumerable<SelectListItem> Categories { get; set; }
}
我在控制器中使用的:
private IEnumerable<SelectListItem> GetCategories()
{
var db = new MyDBContext();
var categories = db.Categories
.Select(x =>
new Category
{
CategoryId = x.CategoryId,
Name = x.Name
});
return new SelectList(categories, "Value", "Text");
}
...并在Create()中:
public ActionResult Create()
{
var model = new CategoryViewModel();
model.Categories = GetCategories();
return View(model);
}
我不知道如何填充视图中的下拉列表:
<div class="form-group">
@Html.LabelFor(model => model.Category, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(WHAT GOES HERE????)
</div>
</div>
感谢您救我! (RE5引用)
答案 0 :(得分:2)
有不同的overloads,但这是一个选项:
@Html.DropDownListFor(x => x.SelectedCategoryId, Model.Categories)