MVC4:如何在View和DisplayFor中使用Tuple作为模型

时间:2013-11-19 13:24:48

标签: asp.net-mvc-4

我的第一个视图开头是这样的:
@model IEnumerable<ToDo4.Models.ToDoItem>
这有效:
<th>
@Html.DisplayNameFor(model => model.Content)
</th>

当我将View更改为使用元组时,DisplayNameFor()将不起作用。

@model Tuple<IEnumerable<ToDo4.Models.ToDoItem>, ToDo4.Models.ApplicationUser>

    <th>  
        @Html.DisplayNameFor(model => model.Item1.Content)  
    </th>    

我不明白为什么DisplayNameFor()能够从第一个@model中提取ToDoItem类型,但是当IEnumerable在元组中时却不能。 我在俯瞰什么?谢谢......

2 个答案:

答案 0 :(得分:0)

在这里找到答案:MVC Html.DisplayNameFor on a complex model
创建了一个包装类,更改了IEnumerable&lt;&gt;到IList&lt;&gt;,这似乎有效:

&LT的第i;
        @ Html.DisplayNameFor(model =&gt; model.Item1 [0] .Content)
    &LT; /第&GT;

答案 1 :(得分:0)

您最初的想法适用于:

@using GHCOMvc.Controllers

@model (<IEnumerable<ToDo4.Models.ToDoItem> list, ToDo4.Models.ApplicationUser> user)

<table class="table">
  <tr>
    <th>
      @Html.DisplayNameFor(model => model.list.FirstOrDefault().Content)
    </th>
  </tr>
</table>