您实际上尚未展示如何调用分部视图以及您的控制器操作是否实际上已将模型传递给该视图。
确保您的控制器已正确初始化模型。因此,如果我们假设您有以下模型:
public class MyViewModel
{
public string SelectedOption { get; set; }
public IEnumerable<SelectListItem> SelectOptions { get; set; }
}
以及以下控制器操作:
public ActionResult Foo()
{
var model = new MyViewModel();
model.SelectOptions = new[]
{
new SelectListItem { Value = "1", Text = "item 1" },
new SelectListItem { Value = "2", Text = "item 2" },
new SelectListItem { Value = "3", Text = "item 3" },
};
return View(model);
}
十你可以有一个相应的视图,它将调用部分:
@model MyViewModel
@Html.Partial("_MyPartial", Model)
and the _MyPartial.cshtml
:
@model MyViewModel
@Html.DropDownListFor(x => x.SelectedOption, Model.SelectOptionOptions)
请注意视图模型上如何需要 2 个属性才能创建下拉列表 => 标量属性 (SelectedOption
)将用于绑定所选值和集合属性,该集合属性将包含您想要在下拉列表中显示的值列表(SelectOptionOptions
).
在您的代码中,您对两者使用相同的属性,这是错误的:
@Html.DropDownListFor(m => m.SelectOption, Model.SelectOption)