3

これが可能かどうかはわかりません。

@Helperビュー内および他のビュー内にたくさんの があります:

@helper ViewHelper1()
{
   ...
}
@helper ViewHelper2()
{
   ...
}
etc.

ビューと他のビューで使用される繰り返しコードがあります。

@if (!(Model.Entity == Model.Enum.One))
    {
        <td>
            @ViewHelper1()
        </td>
    }
    else
    { 
        <td>
            @ViewHelper1()
        </td>
        <td>
            @ViewHelper1()
        </td>
    }

実際@ViewHelper1にはもっと複雑なコードがありますが、それは重要ではありません (私は思います)。

各ビューには多数の があり@Helper(30 以上のビュー、@Helperそれぞれ 10 ~ 15 の )、<table>構造は同じであるため、構造をカプセル化し@Helperてビューの.App_Code<td>@Helper

言う:

@helper Table(...) 
    {
        ...
    }

または、それが可能かどうかに関係なく、次のようにビューで呼び出します。

@Table(HelperView1)

もしそうなら、私は構文の助けが必要でした.

いつものように、大歓迎です。

4

1 に答える 1

2

生成されたかみそりヘルパーは、returnタイプの関数にすぎませんHelperResultHelperResultメインヘルパーにパラメーターとして返されるデリゲートを作成し、適切な場所で呼び出すことができます。

始めるための小さなサンプル:

@helper View1()
{
    <h1>View1</h1>
}

@helper View2()
{
    <h2>View2</h2>
}

@helper Table(Func<HelperResult> viewHelper)
{
    <text>Reuslt of viewHelper</text>
    @viewHelper()
}

@Table(View1)
@Table(View2)

生成された出力:

Reuslt of viewHelper
<h1>View1</h1>

Reuslt of viewHelper
<h2>View2</h2>
于 2012-05-09T20:58:51.930 に答える