我创建了一个新的'Jobs'内容类型。基本上我希望它以与模块相同的方式工作,它们只是允许在职业页面上发布工作列表。我主要使用它,内容类型显示在管理员中,我可以根据需要输入数据。但是我现在无法在页面上呈现它 - 当我尝试循环并打印出作业时,我一直收到错误。
在我的JobsTemplate.aspx文件中,我有以下内容:
<% if (!Content.Jobs.IsNullOrEmpty()) {
foreach (var item in Content.Jobs.AsSmartEnumerable()) {
var job = item.Value.Value as Jobs; %>
<% if (item.Index % 3 == 0) { %>
<div class="row-fluid modules">
<% } %>
<div class="span4">
<h2><%: job.Title %></h2>
<%= job.Body %>
<% if (job.Link.HasValue()) { %><p><a class="btn" href="<%= job.Link.Url() %>"><%: Resources.Strings.LearnMore %> »</a></p>
<% } %>
</div>
<% if (item.IsLast || !item.IsFirst && item.Index % 2 == 0) { %>
</div>
<% } %>
<% } %>
<% }%>
这会产生错误:
Compiler Error Message: CS1061: 'Mindroute.Lemoon.Modules.CoreModule.Page' does not contain a definition for 'Jobs' and no extension method 'Jobs' accepting a first argument of type 'Mindroute.Lemoon.Modules.CoreModule.Page' could be found (are you missing a using directive or an assembly reference?)
我错过了什么?在JobsTemplate.aspx文件中,我使用JobsTemplate作为代码隐藏并继承值 - 这是我搞砸了吗?
感谢。
答案 0 :(得分:0)
看起来您的JobTemplates.aspx页面用于呈现内容类型Mindroute.Lemoon.Modules.CoreModule.Page的页面,编译器会告诉您页面内容类型没有作业属性。
您应该做的是创建名为Careers的内容类型(或修改现有内容)并添加属性定义,如:
public List<ContentRef> Jobs { get; set; }
然后,您必须告诉您的模板它应该呈现类型为Careers的内容项:
public partial class CareersTemplate : PageBase<Careers>
最后您需要在admin中编辑Careers内容类型以使用CareersTemplate。