MVC 3 Изменение модели в представлениях с помощью RenderPage

У меня проблемы при попытке изменить модель моего представления в 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 и поместил его в строку цикла foreach index.cshtml , я бы ожидал результатов. Однако при этом не используется повторно существующий код.

Можно ли каким-либо образом изменить модель на один объект Frog для использования в RenderPage?

Ура!

7
задан Mureinik 15 August 2014 в 16:45
поделиться