Использование другой модели представления в частичном представлении с использованием движка представления Spark - PullRequest
4 голосов
/ 11 января 2010

Используя ASP.NET MVC & Spark, у меня есть представление, которое перечисляет количество поисков. Вид имеет следующую декларацию вверху:

<viewdata model="IEnumerable<SearchModel>" />

На той же странице поиска я также отображаю частичную часть, которая используется в качестве содержимого всплывающего окна, которое позволяет пользователям добавлять новые поиски.

Моя проблема: в частичном представлении я хочу использовать строго типизированные HTML-помощники и написать:

${Html.TextBoxFor(model => model.SearchPhrase)}

Но когда я добавлю еще:

<viewdata model="CreateSearchModel" />

вверху файла частичного просмотра Spark завершается ошибкой с Может быть объявлена ​​только одна модель данных представления.

Я могу использовать обычные помощники HTML, но как я могу получить выгоду от использования строго типизированных помощников HTML в этом частичном представлении - или есть ли лучший способ сделать это?

Ответы [ 2 ]

8 голосов
/ 11 января 2010

Вместо <используйте файл = "частичный" /> попробуйте сделать

# Html.RenderPartial("partial", mydata);

Это должно обойти единственное ограничение модели.

0 голосов
/ 11 января 2010

Вы не можете сделать свой частичный заголовок вида таким:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CreateSearchModel>" %>

и используйте

<% Html.RenderPartial("../PartialView", (CreateSearchModel)ViewData["MyCreateSearchModel"] ); %>
...