0

PropertyInfo参照TDatasプロパティに従って、モデルのhtmlコードを返す次のメソッドがあります。

 public MvcHtmlString GetHtml(HtmlHelper<TData> helper) {

        if (PropertyInfo.IsDefined(typeof(UIHintAttribute), true)) {
            UIHintAttribute uiHintAttribute = PropertyInfo.GetCustomAttributes(typeof(UIHintAttribute), true).Cast<UIHintAttribute>().FirstOrDefault();
            if (uiHintAttribute != null) {
                // Templatename ignored here
                return helper.Display(PropertyInfo.Name, uiHintAttribute.UIHint);
            }
        }

        return helper.Display(PropertyInfo.Name);
    }

displaytemplate の名前は UIHint を介して定義され、正しく読み取られます。
したがって、1 つの呼び出しは次のようになります。

return helper.Display("Name", "NameDisplayTemplate");

残念ながら、templatename特定の DisplayTemplate でプロパティをレンダリングする場合、パラメーターは無視されます。私はdisplaytemplate(フォルダdisplaytemplate)とpartialviewの両方を試しました。それらのどれも機能しませんでした。

誰かアイデアはありますか?

4

1 に答える 1

0

問題は、msdn に記述されているように、テンプレートを DisplayTemplates-Folder に配置する必要があることでした。

コントローラーの DisplayTemplates フォルダーで templateName パラメーターと一致する名前のテンプレートが見つかった場合、そのテンプレートを使用して式がレンダリングされます。コントローラーの DisplayTemplates フォルダーにテンプレートが見つからない場合、Views\Shared\DisplayTemplates で templateName パラメーターの名前と一致するテンプレートが検索されます。テンプレートが見つからない場合は、デフォルトのテンプレートが使用されます。

于 2014-04-17T11:27:51.037 に答える