传入字典的模型项的类型是' System.Collections.Generic.Dictionary
2[CapacityPlanner2.Models.Segment, CapacityPlanner2.Models.Product]', but this dictionary requires a model item of type 'System.Collections.Generic.Dictionary
2 [System.Object,System.Object]
我的观点有@model Dictionary<dynamic, dynamic>
我正在传递以下Dictionary<Project, Segment>
不应该有用吗?
我的部分观点:
@model Dictionary<dynamic, Dictionary<dynamic, List<dynamic>>>
我的主要观点
@model Dictionary<dynamic, Dictionary<dynamic, Dictionary<dynamic, List<dynamic>>>>
@foreach (var kvp in Model)
{
@Html.Partial("_part", kvp.Value)
}
我想添加部分视图,因为我想重用它。但在此之前一切正常。
答案 0 :(得分:0)
如评论中所述,您必须在创建模型时传递dynamic
类型。这是一个工作样本。但正如评论中所述,请检查您是否真的需要dynamic
,可能interfaced model
就足够了。
public ActionResult Testing()
{
var data = new Dictionary<dynamic, Tuple<dynamic, dynamic>>
{
{1, new Tuple<dynamic, dynamic>(new Project{Name = "P1"}, new Segment{Id = "S1"})},
};
return View(data);
}
@foreach (var d in @Model)
{
var item1 = @d.Value.Item1 as Project;
var item2 = @d.Value.Item2 as Segment;
<p> @d.Key + ": " + @item1.Name + " - " + @item2.Id</p>
}
答案 1 :(得分:0)
似乎你只能声明
@Model dynamic
然后将其投射到任何东西