Partialviewcontroller:
public ActionResult Groepen()
{
DropDownModel model = new DropDownModel();
List<GroepModel> groepen = Mapper.Map<List<GroepenWerkvorm>, List<GroepModel>>(db.GroepenWerkvorms.ToList());
model.groepList = new SelectList(groepen, "id", "Naam");
List<ParameterModel> parameters = Mapper.Map<List<ParametersWerkvorm>, List<ParameterModel>>(db.ParametersWerkvorms.ToList());
model.parameterList = new SelectList(parameters, "id", "Naam");
return View(model);
}
运行局部视图时,工作正常。
查看(也不是部分视图,但不同的视图):
@Html.Partial("~/Views/DropDown/Groepen.cshtml")
=&GT;空引用异常,因为它没有获得正确的数据。
所以我需要将模型从当前视图传递给partialview,但是如何?
尝试:
@Html.Partial("~/Views/DropDown/Groepen.cshtml", ViewBag.partial)
但后来我得到:扩展方法无法动态显示。
那么如何为我的partialview提供正确的模型以便我能正确呈现它?
答案 0 :(得分:1)
视图可以包含任意数量的部分视图。模型可以包含任意数量的嵌套模型。如果您的父视图正在创建子视图模型,则视图模型(DropDownModel)应包含将用作部分视图视图模型的子模型。
public class DropDownModel
{
public string Something {get; set;}
public ChildModel Model {get; set;}
}
然后您的父视图Groepen将包含一个部分视图行,如:
@Html.Partial("~/Views/DropDown/GroepenInnerPartial.cshtml", Model.ChildModel)
不需要Viewbag,我认为这是违反最佳做法的。
**由于我没有编辑器
,部分视图上的语法可能略有偏差