1

我创建了一个新的“工作”内容类型。基本上我希望它以与模块相同的方式工作,它们只会允许将工作列表发布在职业页面上。我大部分时间都在工作,内容类型显示在管理员中,我可以根据需要输入数据。但是我现在无法让它在页面上呈现 - 当我尝试循环并打印出作业时,我不断收到错误消息。

在我的 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 %> &raquo;</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 作为代码隐藏并继承值 - 这是我搞砸的地方吗?

谢谢。

4

1 回答 1

0

看起来您的 JobTemplates.aspx 页面用于呈现内容类型为 Mindroute.Lemoon.Modules.CoreModule.Page 的页面,编译器告诉您该页面内容类型没有 Jobs 属性。

您应该做的是创建一个名为 Careers 的内容类型(或修改现有的)并添加一个属性定义,例如:

public List<ContentRef> Jobs { get; set; }

然后,您必须告诉您的模板,它应该呈现职业类型的内容项,例如:

public partial class CareersTemplate : PageBase<Careers>

最后,您需要在管理员中编辑职业内容类型以使用职业模板。

于 2013-12-17T19:18:43.673 回答