将模型动态映射到视图

时间:2013-02-22 13:16:55

标签: c# asp.net-mvc razor asp.net-mvc-4

我有一个使用强类型模型的局部视图。是否可以在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)

1 个答案:

答案 0 :(得分: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命名空间放在范围内,以便可以在自定义帮助程序中解析部分扩展方法:

using System.Web.Mvc.Html;