1

厳密に型指定された Razor 2 エディター テンプレートがあります。ビューモデルが特定の条件を満たす場合、ビューを同じタイプの代替テンプレートにデリゲートしたい。別のテンプレートを選択するには、EditorFor ヘルパーに TemplateName 引数を使用します。

@model MyType
@if (Model.IsSpecialCase)
{
    @Html.EditorFor(m => m, "SpecialCaseTemplate")
}
else
{
    @* Default markup *@
}

問題は、Razor が代替テンプレートを呼び出さないことです。EditorFor メソッドを渡すだけです。2 番目のテンプレートのタイプを変更すると、正しく表示されます。部分ビューを使用してこれを回避することはできますが、固執したいエディター テンプレートを使用するスキームがあるため、むしろそうしたくありません。

これを機能させる方法を知っている人はいますか?

編集

これは、 ASP.net MVC - 同じモデル タイプで EditorFor を 2 回使用するという動作と関係があるようです。つまり、MVC は、同じオブジェクトでの EditorFor メソッドの 2 回の使用をサポートしていません。

4

1 に答える 1