Asp.net mvc 4 如何添加列表<;T>;使用单个模型查看的步骤

Asp.net mvc 4 如何添加列表<;T>;使用单个模型查看的步骤,asp.net-mvc-4,asp.net-mvc-partialview,grid.mvc,Asp.net Mvc 4,Asp.net Mvc Partialview,Grid.mvc,尝试将网格添加到“我的详细信息”页面时出错。错误是: 传入字典的模型项的类型为“GridMvc.Html.HtmlGrid1[MyApp.Models.RecipientActivityMetadata]”,但此字典需要类型为“System.Collections.Generic.List1[MyApp.Models.RecipientActivityMetadata]”的模型项 MVC4视图是详细信息页面和列表的组合。我使用的viewmodel如下所示: public class FormVi

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

传入字典的模型项的类型为“GridMvc.Html.HtmlGrid
1[MyApp.Models.RecipientActivityMetadata]”,但此字典需要类型为“System.Collections.Generic.List
1[MyApp.Models.RecipientActivityMetadata]”的模型项

MVC4视图是详细信息页面和列表的组合。我使用的viewmodel如下所示:

public class FormViewModel()
{
    public RecipientMetadata Recipient { get; set; }
    public StudentActivityMetadata StudentActivity    { get; set; }
    public List<RecipientActivityMetadata> RecipientActivites { get; set; }
}
@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>
并呈现包含以下列表的局部视图:

@Html.Partial("_grid", Model.RecipientActivites)
这个部分看起来是这样的:

public class FormViewModel()
{
    public RecipientMetadata Recipient { get; set; }
    public StudentActivityMetadata StudentActivity    { get; set; }
    public List<RecipientActivityMetadata> RecipientActivites { get; set; }
}
@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>
@使用GridMvc.Html
@模型列表

@ActionLink(“新建”、“创建”)

@Html.Grid(Model).Columns(Columns=> { columns.Add(c=>c.ActCount); columns.Add(c=>c.ActivityType).标题为(“活动类型”); columns.Add(c=>c.FundCode)。标题为(“FundCode”); 列。添加(c=>c.Hours)。标题为(“Hours”); }).带分页功能(10)
从评论到回答
根据提供的文档,
@Html.Grid
使用部分视图
\u Grid.cshtml
。因为您的局部视图也有相同的名称,所以解决方案是为您的局部视图使用不同的名称。

@Html.Grid有一个称为_Grid的局部视图进行渲染。所以,看起来您需要将此部分重命名为其他名称,或者指定部分视图的完整路径。我没有使用过MVC.Grid,但从文档来看,它是这样的。就是这样,我更改了名称,现在它可以工作了。我甚至没有在文件中注意到这一点。谢谢你指出这一点。请把答案贴出来,这样我就可以标记了。不客气。我已经把它作为答案贴了出来。