我是orchardCMS的新手,并使用Orchard v.1.8.1.0。我有一个名为" Event"的自定义内容类型。我正在创建自定义表单,使匿名用户可以注册任何特定事件。
我无法在自定义表单中显示事件列表。我尝试使用内容选择器字段,但即使允许匿名用户角色查看所有事件,我也会被拒绝访问。
有人能引导我朝正确的方向前进吗?我将非常感谢你。
由于
答案 0 :(得分:0)
关于安全性,您可以在“用户”下的管理员中指定哪些角色可以访问特定的内容类型。
关于数据加载,您始终可以创建一个服务类来加载数据(实现IDependency
,以便您可以将其注入其他类,如控制器或处理程序)。
public class EventService : IEventService {
private IContentManager _contentManager;
public EventService(IContentManager contentManager) {
_contentManager = contentManager;
}
public IEnumerable<IContent> GetEvents() {
return _contentManager.Query("Event").List();
}
}
public interface IEventService : IDependency {
IEnumerable<IContent> GetEvents();
}
现在您可以加载数据了。你打算如何使用或展示它?了解这一点对于找到要加载数据的位置的解决方案至关重要。这可能是Controller
或ContentPartDriver
实现中的某个地方,前者需要“手动”显示/存储数据,后者需要创建内容部分,驱动程序,处理程序和位置。但正确的实现会处理数据的显示和存储。