如何添加列表<T>以查看单个模型
How to add a list<T> to view with a single model
尝试将网格添加到我的详细信息页面时出错。错误是:
The model item passed into the dictionary is of type 'GridMvc.Html.HtmlGrid1[MyApp.Models.RecipientActivityMetadata]', but this dictionary requires a model item of type 'System.Collections.Generic.List
1[MyApp.Models.RecipientActivityMetadata]'.
MVC4 View是详情页和列表的组合。我正在使用如下所示的视图模型:
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>
从评论到回答
根据 Grid.Mvc 提供的文档,@Html.Grid
使用局部视图 _Grid.cshtml
。因为您的局部视图也有相同的名称,所以解决方案是为您的局部视图使用不同的名称。
尝试将网格添加到我的详细信息页面时出错。错误是:
The model item passed into the dictionary is of type 'GridMvc.Html.HtmlGrid
1[MyApp.Models.RecipientActivityMetadata]', but this dictionary requires a model item of type 'System.Collections.Generic.List
1[MyApp.Models.RecipientActivityMetadata]'.
MVC4 View是详情页和列表的组合。我正在使用如下所示的视图模型:
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>
从评论到回答
根据 Grid.Mvc 提供的文档,@Html.Grid
使用局部视图 _Grid.cshtml
。因为您的局部视图也有相同的名称,所以解决方案是为您的局部视图使用不同的名称。