2013-02-22 3 views
0

У меня есть частичный вид, работающий с сильно типизированной моделью. Можно ли сопоставить мою модель с моим частичным представлением «на лету» в html-помощнике и вернуть обработанный html?Динамическое отображение модели на вид

Вот псевдокод, который мне интересно, если это возможно.

public static MvcHtmlString ContentRating(this HtmlHelper html, ContentKey contentKey) 
    { 
     ContentRatingModel contentRatingModel = new ContentRatingHelper().GetContentRatingModel(contentKey); 

     // map my partial view which is named "ContentRating.cshtml" to contentRatingModel  

     return new MvcHtmlString(string.Format("the html output of mapping"); 
    } 

И использовать этот вспомогательный метод в моих взглядах, как показано ниже:

@Html.ContentRating(ContentKey.Test) 

ответ

2

Это не совсем ясно, что именно вы имеете в виду отображения частичного вида на модель, но если вы хотите, чтобы оказать содержание этого частичный вид внутри вашего помощника вы могли бы сделать следующее:

public static MvcHtmlString ContentRating(this HtmlHelper html, ContentKey contentKey) 
{ 
    ContentRatingModel contentRatingModel = new ContentRatingHelper().GetContentRatingModel(contentKey); 

    var result = html.Partial("ContentRating", contentRatingModel); 

    return new MvcHtmlString(result.ToHtmlString()); 
} 

не забудьте взять с собой System.Web.Mvc.Html имен в объеме, чтобы метод Partial extension мог быть разрешен в вашем пользовательском хелпере:

using System.Web.Mvc.Html; 
+0

Большое спасибо. Это то, что я ищу. Я отвечу на ваш ответ через 7 минут. :) – anilca