Asp.net mvc 4 如何添加列表<;T>;使用单个模型查看的步骤
尝试将网格添加到“我的详细信息”页面时出错。错误是: 传入字典的模型项的类型为“GridMvc.Html.HtmlGridAsp.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
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,但从文档来看,它是这样的。就是这样,我更改了名称,现在它可以工作了。我甚至没有在文件中注意到这一点。谢谢你指出这一点。请把答案贴出来,这样我就可以标记了。不客气。我已经把它作为答案贴了出来。