无法使用 List ViewModel 呈现 PartialView
Cannot render PartialView with a List ViewModel
我有一个复合 ViewModel 如下:
public class HomeListViewModel
{
public HomeSearchRequestViewModel SearchRequest { get; set; }
public List<BasicAdSummaryViewModel> AdSummayResults { get; set; }
}
在我的视图中,我想渲染 2 个 PartialView,如下所示:
@model MyNameSpace.HomeListViewModel
<div>
@Html.Partial("_SearchRequest", Model.SearchRequest)
@Html.Partial("_AdSummary", Model.AdSummayResults)
</div>
这是我的 _SearchRequest PartialView
@model MyNameSpace.HomeSearchRequestViewModel
<div>
@Html.EditorFor(m => m.Keyword, new { htmlAttributes = new { @class = "form-control", @type = "text"} })
</div>
这是我的 _AdSummary PartialView:
@model IEnumerable<MyNameSpace.BasicAdSummaryViewModel>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
</tr>
第一个 PartialView 渲染良好,但我在第二个 PartialView 上收到此错误:
System.InvalidOperationException: 'The model item passed into the
dictionary is of type
'MyNameSpace.HomeListViewModel', but this
dictionary requires a model item of type
'System.Collections.Generic.IEnumerable`1[MyNameSpace.BasicAdSummaryViewModel]'.'
我只在使用列表视图模型渲染局部视图时出现此错误...
调用
时会出现此错误消息
@Html.Partial("_AdSummary", null)
MVC 似乎对空视图模型感到困惑;它无法判断 null
的类型是什么,因此假设该类型与当前视图模型相同。
解决方案是确保 Model.AdSummayResults
永远不会 null
。
我有一个复合 ViewModel 如下:
public class HomeListViewModel
{
public HomeSearchRequestViewModel SearchRequest { get; set; }
public List<BasicAdSummaryViewModel> AdSummayResults { get; set; }
}
在我的视图中,我想渲染 2 个 PartialView,如下所示:
@model MyNameSpace.HomeListViewModel
<div>
@Html.Partial("_SearchRequest", Model.SearchRequest)
@Html.Partial("_AdSummary", Model.AdSummayResults)
</div>
这是我的 _SearchRequest PartialView
@model MyNameSpace.HomeSearchRequestViewModel
<div>
@Html.EditorFor(m => m.Keyword, new { htmlAttributes = new { @class = "form-control", @type = "text"} })
</div>
这是我的 _AdSummary PartialView:
@model IEnumerable<MyNameSpace.BasicAdSummaryViewModel>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
</tr>
第一个 PartialView 渲染良好,但我在第二个 PartialView 上收到此错误:
System.InvalidOperationException: 'The model item passed into the dictionary is of type 'MyNameSpace.HomeListViewModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1[MyNameSpace.BasicAdSummaryViewModel]'.'
我只在使用列表视图模型渲染局部视图时出现此错误...
调用
时会出现此错误消息 @Html.Partial("_AdSummary", null)
MVC 似乎对空视图模型感到困惑;它无法判断 null
的类型是什么,因此假设该类型与当前视图模型相同。
解决方案是确保 Model.AdSummayResults
永远不会 null
。