Model
@inherits RenderViewPage
我们可以看到,在View-Template中可以使用的Model对象还是很丰富的:
@(Model.Field<string>("siteName"))
//Model
is the statically-typed way of accessingdata.
@DynamicModel.Name /.BodyText
//this page is a Homepage type, so it has a Name field,这个说明DynamicModel是动态设别Type的,在Homepagetype中我们定义了一些Property,找到Matching的Type,就可以通过DynamicModel.PropertyName来访问了。
关于Hierarchynavigators,所有的Docuemntyep多实现有以下的接口,因此可以自由导航
· @DynamicModel.Parent
· @DynamicModel.Children
· @DynamicModel.Ancestors
· @DynamicModel.AncestorsOrSelf
· @DynamicModel.Descendants
· @DynamicModel.DescendantsOrSelf
鉴于@DynamicModel 作为Dynamic类型来定义的a .NET dynamic
object,关于Dynamic的好处,介绍请参考http://msdn.microsoft.com/en-us/library/dd264736.aspx
为了简化我们的操作,例如Count()/Enumerable.count(myDynamicObjects),Umbraco增加了一下方法:
· @DynamicModel.Children.Count()(for your current site, this returns: 7)
· @DynamicModel.Children.Any()
· @DynamicModel.Children.First()
· @DynamicModel.Children.FirstOrDefault()
· @DynamicModel.Children.Last()
· @DynamicModel.Children.LastOrDefault()
· @DynamicModel.Children.Single()
· @DynamicModel.Children.SingleOrDefault()
· @DynamicModel.Children.ElementAt(int)
· @DynamicModel.Children.ElementAtOrDefault(int)
· @DynamicModel.Children.IndexOf(item)
比如说我们使用上面的方法之一
Gettingstarted 作为child page content的Name就出现了
Web helper
@using Umbraco.Cms.Web;
此外除了@Helper之外,还有Webhelper扩展,例如Umbraco
helper
@Umbraco.Truncate(DynamicModel.BodyText, 30)