如何使用单个模型添加列表<t>进行查看

时间:2015-06-01 23:05:18

标签: asp.net-mvc-4 asp.net-mvc-partialview grid.mvc

尝试将网格添加到详细信息页面时出错。错误是:

  

传入字典的模型项类型为&#39; GridMvc.Html.HtmlGrid 1[MyApp.Models.RecipientActivityMetadata]', but this dictionary requires a model item of type 'System.Collections.Generic.List 1 [MyApp.Models.RecipientActivityMetadata]&#39;。

MVC4 View是详细信息页面和列表的组合。我正在使用一个看起来像这样的viewmodel:

public class FormViewModel()
{
    public RecipientMetadata Recipient { get; set; }
    public StudentActivityMetadata StudentActivity    { get; set; }
    public List<RecipientActivityMetadata> RecipientActivites { get; set; }
}

视图顶部是:

@model MyApp.Models.ViewModels.FormViewModel

并呈现包含列表的部分视图:

@Html.Partial("_grid", Model.RecipientActivites)

,部分看起来像这样:

@using GridMvc.Html
@model List<MyApp.Models.RecipientActivityMetadata>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<div>
    @Html.Grid(Model).Columns(columns =>
    {
        columns.Add(c => c.ActCount).Titled("Activity Num");
        columns.Add(c => c.ActivityType).Titled("Activity Type");
        columns.Add(c => c.FundCode).Titled("FundCode");
        columns.Add(c => c.Hours).Titled("Hours");
    }).WithPaging(10)
</div>

1 个答案:

答案 0 :(得分:2)

从评论到答案

根据Grid.Mvc提供的文档,@Html.Grid使用部分视图_Grid.cshtml。由于您的部分视图也具有相同的名称,因此解决方案是为部分视图使用不同的名称。