我有设置一些附加的内容类型的果园CMS模块并增加通过代码的自动敷设组件。 一切完美,但我不喜欢默认的永久链接模式。
我所试图做的是添加自定义模式,并使用我的内容类型的公共属性之一。 在我的情况下,自定义类型有一个名为ClubName公共财产,我想,要使用(它更有意义,从路由的角度看)。
果园部分类的名字叫做TrackPart
。
我曾尝试{Content.TrackPart.ClubName}
{Content.Track.ClubName}
{ContentItem.TrackPart.ClubName}
{Content.TrackPart.ClubName}
和各种其他的变化,但似乎没有奏效。
我是真正的新果园所以有一个高的机会,我简单的东西。
任何帮助将不胜感激。
为了响应反馈@贝特朗乐罗伊我通过复制例如令牌创建了自己的标记。 现在我可以看到在下拉菜单中的令牌,并选择它。 然而,路由模式仍然没有工作。
我只能假设,我误解了评估()函数的context.For
使用。 它看起来像我没有得到我所需要的数据
这里是我到目前为止所。
public class TrackPartTokens : ITokenProvider { private readonly IContentManager _contentManager;
public TrackPartTokens(IContentManager contentManager) { _contentManager = contentManager; } public Localizer T { get; set; } public void Describe(dynamic context) { context.For("Track", T("Track"), T("Tokens for Track")) .Token("ClubName", T("ClubName"), T("The name of the club.")) ; } public void Evaluate(dynamic context) { context.For<TrackPart>("Track") .Token("ClubName", (Func<TrackPart, object>)(field => field.ClubName)) .Chain("ClubName", "ClubName", (Func<TrackPart, object>)(field =>field.ClubName)) ; }</code>
上面的代码是基于Orchard.Fields模块内部的DateTimeField字段令牌。
context.For( “DateTimeField字段”).Token( “日期”,(Func键)(字段=> field.DateTime)).Chain( “日期”, “日期”,(Func键)(字段=> field.DateTime)) ;