我在下面创建了一个简单的循环,我想通过它的umbraco" Unpublish at"来命令这个循环。属性。在我看来应该是这样的: -
@foreach (var example in CurrentPage.Children.OrderBy("expireDate"))
{
//Do Stuff//
}
这与Umbracos createDate类似但不起作用。有人有任何想法吗?感谢
答案 0 :(得分:2)
正如@nsgocev所描述的那样,你不能直接在Razor中这样做,但是,你不应该在你的剃刀中访问Document对象,因为这会撞到数据库。
理想情况下,你应该做的是一点工作,但值得:
这是一个非常好的习惯,以这种方式扩展Umbraco。如下所示:
public class ExpiryDateEvent : IApplicationEventHandler
{
public void OnApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
ContentService.Published += ContentService_Published;
}
void ContentService_Published(IPublishingStrategy sender, PublishEventArgs<IContent> e)
{
var entity = e.Entity;
if (entity.HasProperty("expiryDate") && e.entity.ExpireDate.HasValue)
{
entity.SetValue("expiryDate", e.Entity.ExpireDate.Value);
sender.Save(entity);
}
}
}
关于这一点的好处是它有很多应用程序用于其他场景。你不想要做的一件事是使用你的UI中的Document对象来访问你的数据库。