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)
4

1 に答える 1

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 拡張メソッドを解決できるように、名前空間をスコープに入れることを忘れないでください。

using System.Web.Mvc.Html;
于 2013-02-22T13:19:52.843 に答える