0

MVC Razor を使用して、ビュー内の HTML マークアップ要素をテンプレートとして参照するにはどうすればよいでしょうか (ヘルパーに文字列またはオブジェクトとして渡すことができます)。

必要な機能の例 (または同様の、標準化されたアプローチを好みますが、見つけることができませんでした):

@TemplateOne {
    <!--Standard Razor markup:-->
    <div>
        <p>@Model.Summary</p>
        <table>
            <tr>
                <td>Lorem ispum...</td>
            </tr>
        </table>
    </div>
}

IDによる参照:

@{
    var templateToPassToHelper = TemplateOne;
}

上記のコードの構文が正しくないことはわかっています。これは、私のローカル テストでは機能しないためです。これを達成するために私が最も近づいたのは、次を使用することです(変数は単なる文字列であり、このアプローチを使用すると、開発者が Visual Studio インテリセンスとその他の HTML 編集支援):

string template =
  @"<html>
      <head>
        <title>Hello @Model.Name</title>
      </head>
      <body>
        Email: @Html.TextBoxFor(m => m.Email)
      </body>
    </html>";
4

1 に答える 1

1

あなたが話していることを行うには、いくつかの方法があります。

@brent-mannering コメントから外れる:

Razor 部分ファイル (_partial.cshtml) を作成します。

<div>
    <p>@Model.Summary</p>
    <table>
        <tr>
            <td>Lorem ispum...</td>
        </tr>
    </table>
</div>

そして@Html.Partial("_partial.cshtml",Model)、テンプレートが必要な場所で使用します。

または、ヘルパー関数を使用できます。

@helper TemplateOne(){
    <div>
        <p>@Model.Summary</p>
        <table>
            <tr>
                <td>Lorem ispum...</td>
            </tr>
        </table>
    </div>
}
<!--body of your page-->
@TemplateOne()
于 2015-09-28T21:31:28.000 に答える