【问题标题】:MVC 3 Changing Model in Views with RenderPageMVC 3 使用 RenderPage 在视图中更改模型
【发布时间】: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


    【解决方案1】:

    试试这样:

    <div class="frogDetails">
        @Html.Partial("ShowFrogDetails", frog)
    </div>
    

    【讨论】:

    • 太棒了,完美地完成了这项工作!干杯!
    猜你喜欢
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多