如何将模型属性传递给具有不同模型的局部视图
本文关键字:模型 局部 视图 属性 | 更新日期: 2023-09-27 18:10:05
给定一个视图模型类
public class Foo
{
public string Fuzz { get; set; }
public Bar Bar { get; set; }
}
public class Bar
{
public string Fizz { get; set; }
}
在控制器操作中,我将以下模型传递到视图:
View(new Foo { Fuzz = "Fizz", Bar = new Bar{ Fizz = "Fuzz" } });
在视图Foo.cshtml 中
@model Foo
@Model.Fuzz
@{ Html.RenderPartial("BarPartial", Model.Bar); }
在视图中部分BarPartial.cshtml
@model Bar
@Model.Fizz
抛出错误:
传递到字典中的模型项的类型为Foo,但此字典需要类型为Bar的模型项。
如何将父模型的属性传递给具有属性类型的模型的局部视图?
public ActionResult test2()
{
return View(new Foo { Fuzz = "Fizz", Bar = new Bar { Fizz = "Fuzz" } });
}
我的观点
@model Foo
@Model.Fuzz
@{ Html.RenderPartial("_partial1",Model.Bar); }
我的部分
@model Bar
@Model.Fizz
没有不同的代码,对我来说很好
很抱歉我刚刚发现了错误:
在我正在进行的实际项目中,我传递的模型似乎在操作代码的后面部分被设置为null。
将出现此错误:
The model item passed into the dictionary is of type Foo but this dictionary requires a model item of type Bar.
如果
View(new Foo { Fuzz = "Fizz", Bar = null });