我有以下方法根据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定义的,并且可以正确读出 所以一个电话可能是:
return helper.Display("Name", "NameDisplayTemplate");
不幸的是,当我想使用特定的DisplayTemplate呈现属性时,忽略templatename
参数。我尝试了displaytemplate(文件夹displaytemplate)和partialview。他们都没有工作。
有人有什么想法吗?
答案 0 :(得分:0)
问题是模板必须放在DisplayTemplates-Folder中,因为它是在msdn中编写的。
如果找到名称与templateName参数匹配的模板 在控制器的DisplayTemplates文件夹中,该模板用于 渲染表达式。如果在控制器中找不到模板 在DisplayTemplates文件夹中搜索Views \ Shared \ DisplayTemplates 对于与templateName参数的名称匹配的模板。如果 找不到模板,使用默认模板。