尝试使用同一个对象渲染两个单独的模板时遇到问题。
我有一些看起来像这样的东西:
@Html.DisplayFor(m => Model, "TemplateOne")
@Html.DisplayFor(m => Model, "TemplateTwo")
第一个模板获得渲染,第二个模板不会。
我使用.NET Reflector逐步查看代码,看看发生了什么,并发现了这个:
if (html.ViewDataContainer.ViewData.TemplateInfo.VisitedObjects.Contains(item))
{
return string.Empty;
}
TemplateHelpers.TemplateHelper(HtmlHelper html,ModelMetadata metadata,string htmlFieldName,string templateName,DataBoundControlMode mode,object additionalViewData,ExecuteTemplateDelegate executeTemplate)
因此它会检查模型/对象是否已用于渲染模板,然后如果它在我的示例中具有哪个模板/对象,则返回“”,因此不会显示第二个模板。
我有一个解决方法是克隆第二个模板的模型,但我想知道我能做的其他事情就像我可以设置的配置选项一样吗?
史蒂夫
答案 0 :(得分:0)
现在解决这个问题的方法是创建
public class ModelWrapper{
public object Model { get; set}
}
并将此设置传递给我实际需要的任何内容。
不幸的限制