2011-08-11 22 views
2

我很好奇,如果我能以某种方式使Widget.Wrapper形状(或其他包装)可替代,因为它包含大部分小部件的HTML代码。我不喜欢富人IF在CSHTML文件的语句,因此我宁愿使用交替机制使用一个明确的解决方案 - 能够像这些创造交替:果园CMS中的包装可以替代吗?

Widget.Wrapper-[ZoneName].cshtml 
Widget.Wrapper-[WidgetId].cshtml 
Widget.Wrapper-url-[UrlAlternate].cshtml 

这是可能的?或者包装是一个特例 - 那么为什么?

谢谢

回答

0

是的,这是可能的。 你可以用IShapeTableProvider来做到这一点。 抓住你的窗口小部件渲染的形状,决定你想要的包装,然后添加一个新的包装。

builder.Describe("YourShapeHere") 
    .OnDisplaying(displaying=>{ 
     displaying.ShapeMetadata.Wrappers.Add("Widget_Wrapper-" + displaying.Shape.Id); 
    } 
} 
+3

这不完全是一个替代(因为没有,没有替代包装),它只是添加一个新的包装,它不会删除现有的。 –