我有一个名为LogViewModel的ViewModel,我有3个属性,如下所示。
public class LogViewModel
{
public IEnumerable<Log> Logs { get; private set; }
public PaginationHelper Pagination { get; set; }
public LogFilter Filter { get; set; }
}
将LogViewModel传递给View as Model。 现在我需要将LogFilter(带数据)传递给部分视图,如:
@Html.Partial("_LogsFilter", Model.Filter)
我尝试了很多方法,但总是得到同样的错误:
传递到字典中的模型项是类型的 &#39; Infrastructure.Presentation.Desk.ViewModels.LogViewModel&#39 ;, 但是这个字典需要一个类型的模型项 &#39; Infrastructure.Presentation.Desk.Models.LogFilter&#39;
有什么想法吗?
答案 0 :(得分:7)
因为Filter
属性为null,所以框架会将模型从父视图传递给partial LogViewModel
,而部分视图需要LogFilter
的类型。
为了防止这种情况确保在呈现视图之前实例化Filter
属性,或者执行以下操作:
@Html.Partial("_LogsFilter", Model.Filter ?? new LogFilter())
答案 1 :(得分:0)
在这种情况下,您的部分视图应该将“ LogFilter ”作为模型。但我认为你传递 LogFilter ,部分视图需要“ LogViewModel ”。请纠正不匹配。