将模型中的子对象传递给局部视图?

时间:2014-04-09 19:05:25

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有一个模型,其中包含网格作为子对象的搜索结果。我想将Model的这个子对象作为模型传递给局部视图,但是我收到了这个错误:

传递到字典中的模型项的类型为“Refunds.Models.RefundModel”,但此字典需要“Refunds.Models.CarSearchModel”类型的模型项。

public class RefundModel(){
     public string SearchString{get; set;}
     public List<SearchResult>{get; set;}
}

此模型转到包含子视图的视图。当出现错误消息时,我尝试将SearchResults列表发送到此子视图:

@Html.Partial("_CarSearch", Model.SearchResults)

Model.SearchResults的类型为CarSearchModel,但部分人认为我发送的是父类型(RefundModel)。你不能将模型的一部分作为局部视图的模型发送到局部视图吗?

1 个答案:

答案 0 :(得分:2)

您提供的内容不完整。您需要确保传递给partial的内容与顶部定义的模型匹配。所以如果你在父页面上查看模型有

public List<SearchResult> SearchResults { get; set; }

然后您可以在设置时将模型传递给部分模型。你的部分的顶部应该有

@model List<SearchResult>

搜索结果必须是定义该模型的完整路径。