【发布时间】:2011-11-30 23:19:32
【问题描述】:
我在尝试在 MVC 3 中更改视图模型时遇到问题。
第一个视图(index.cshtml):
@model IEnumerable<MyProgram.MyFrogCollection>
<h1>Welcome to my frog collection</h1>
@foreach(MyProgram.Frog frog in Model)
{
<div class="frogDetails">
@RenderPage("ShowFrogDetails.cshtml", frog);
</div>
}
第二个视图 (ShowFrogDetails.cshtml),我想在整个网站上使用:
@model MyProgram.Frog
<h3>Name:</h3><div class="detail">@Model.Name</div>
<h3>Colour:</h3><div class="detail">@Model.Colour</div>
但是,当我在传入青蛙对象列表后尝试运行页面 index.cshtml 时,在到达 @RenderPage 行时出现以下错误:
“/”应用程序中的服务器错误。传入的模型项 字典是类型 'System.Collections.Generic.List`1[MyProgram.Frog]',但这 字典需要“MyProgram.Frog”类型的模型项。
如果我要从 ShowFrogDetails.cshtml 中删除代码并将其内嵌在 index.cshtml 的 foreach 循环中,结果就是我所期望的。但是,这不会重用现有代码。
我是否可以将模型更改为单个 Frog 对象以在 RenderPage 中使用?
干杯!
【问题讨论】:
标签: asp.net-mvc-3 model ienumerable renderpartial