我无法将正确的数据传递到部分视图,而且我不确定它为什么会失败。
说我有模特
public class SubModel {
public string Wobble {get; set;}
}
public class MyModel {
public SubModel Wibble {get; set;}
}
和观看次数
MyView.cshtml
@model MyModel
@Html.Partial("SomePartial", Model.Wibble)
和
SomePartial.cshtml
@model SubModel
<h1>Victory!</h1>
此操作因The model item passed into the dictionary is of type 'MyModel', but this dictionary requires a model item of type 'MySubModel'
当我将MyView.cshtml
更改为
@model MyModel
@Html.Partial("SomePartial", Model.Wibble, new ViewDataDictionary<MySubModel>(Model.Wibble))
它按预期工作。
为什么我需要明确传递ViewDataDictionary
?为什么我不能通过模型?
注意:我使用的库可以帮助我实现hrm吗?很多时候。如果不期望上述行为,则可能是此库故障。
答案 0 :(得分:8)
当您传递给局部视图的模型为null
时,会发生这种情况。不要将null传递给局部视图,否则会对其类型感到困惑。
答案 1 :(得分:0)
您是否尝试使用Model.Wibble
代替MyModel.Wibble
传递子模型?可以在具有Model的视图中访问关联的模型,而不是模型的名称。