1

コア プロジェクトで大量のテンプレートが必要な状況があります。

プロジェクトを非常に柔軟にするソリューションを考え出しましたが、ソリューションを実装する方法がわかりません。

私たちのビューでは、次のようなカスタム タグを配置できるようにしたいと考えています。

<div class="some view">
     {{SomeTag}}
</div>

これらのタグはモデルとは何の関係もありません。ここでやりたいことは、実行時にサーバー (ブラウザーではなく!) でこれらのタグをサーバー上のファイルの内容 (指定されたディレクトリの下) に置き換えることです。 「SomeTag.html」と呼ばれます。

{{Tag}} のビューの出力を検索し、それに対応する Tag.html ファイルに置き換えるメソッドを追加するか、ベース コントローラー (「コントローラー」を継承する) でメソッドをオーバーライドする方法はありますか? ?

例えばこれでいいのかな?

    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
    }
4

1 に答える 1

1

の変更された形式を使用できます

HtmlHelper.Partial(partialViewName)

シナリオに固有の拡張メソッドを作成できます

public static MvcHtmlString Template(this HtmlHelper htmlHelper, string templateKey)
{
    string partialViewName = null;

    // get partialViewName according to the template key

    return htmlHelper.Partial(partialViewName);
}

あなたはそれを次のように使用します

@Html.Template("SomeTag")
于 2013-05-24T05:25:28.833 に答える