2015-09-07 2 views
0

Я пытаюсь получить проект Sitecore 8 происходит с MVC, и я получаю следующее сообщение об ошибке:Glass Mapper MVC: Имя «RenderLink» не существует в текущем контексте

Compiler Error Message: CS0103: The name 'RenderLink' does not exist in the current context

у меня есть, как ссылки (из пакетов NuGet)

  • Castle.Core
  • Glass.Mapper
  • Glass.Mapper.Sc
  • G lass.Mapper.Sc.Mvc

Я пробовал несколько вещей с видами/web.config. Возможно, есть столкновения?

<namespaces> 
 
     <add namespace="Sitecore.Mvc" /> 
 
     <add namespace="Sitecore.Data.Items" /> 
 
     <add namespace="System.Web.Mvc" /> 
 
     <add namespace="System.Web.Mvc.Ajax" /> 
 
     <add namespace="System.Web.Mvc.Html" /> 
 
     <add namespace="System.Web.Optimization"/> 
 
     <add namespace="System.Web.Routing" /> 
 
     <add namespace="TDSExample.Web" /> 
 
     <add namespace="TDSExample.Entities.Ids" /> 
 
     <add namespace="Glass.Mapper.Sc" /> 
 
     </namespaces>

Я очистил кэш Sitecore. Я не уверен, что я пропустил. Вот вырубить версия вида/рендеринга:

@model Glass.Mapper.Sc.Web.Mvc.GlassView 
 
<TDSExample.Entities.Templates.Header.Header> 
 

 
    @using Glass.Mapper.Sc @{ Layout = null; var dataSource = Sitecore.Context.Database.GetItem(Sitecore.Mvc.Presentation.RenderingContext.Current.Rendering.DataSource) ?? Sitecore.Context.Item; } 
 

 
    <h1>@Model.Editable(x => x.Title, dataSource)</h1> 
 
    <p> 
 
    @Model.Editable(x => x.Subtitle, dataSource) 
 
    </p> 
 
    @RenderLink(x => x.ReadMoreLink, dataSource, new { @class = "read-more" })

Вот урезанная версия рендеринга:

@model Glass.Mapper.Sc.Web.Mvc.GlassView 
 
    <TDSExample.Entities.Templates.Header.Header> 
 

 
     @using Glass.Mapper.Sc @{ Layout = null; var dataSource = Sitecore.Context.Database.GetItem(Sitecore.Mvc.Presentation.RenderingContext.Current.Rendering.DataSource) ?? Sitecore.Context.Item; } 
 

 
     <h1>@Model.Editable(x => x.Title, dataSource)</h1> 
 
     <p> 
 
     @Model.Editable(x => x.Subtitle, dataSource) 
 
     </p> 
 
     @RenderLink(x => x.ReadMoreLink, dataSource, new { @class = "read-more" })

рендеринг полей теста. Я должен где-то пропустить ссылку. Помещение «@using Glass.Mapper.Sc» или «@using Glass.Mapper.Sc/Mvc» останавливает VS, выделяя его как ошибку. Я просто не вижу, что я пропустил. Любая помощь приветствуется.

ответ

3

изменить это

@model Glass.Mapper.Sc.Web.Mvc.GlassView<TDSExample.Entities.Templates.Header.Header> 

в этом

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<TDSExample.Entities.Templates.Header.Header> 

и доступ к методам по мнению вместо модели:

@Editable(m => m.Title) 
@RenderLink(m => m.ReadMoreLink) 

<!--this should work as well for links--> 
@Editable(m => m.ReadMoreLink) 

Добавлен бонус: вы не должны установить макет до нуля. Убедитесь, что у вас нет _ViewStart.cshtml, который может вызвать это.

+0

Это билет! Большое спасибо. Это было даже там, в [Учебник 12] (http://www.glass.lu/Mapper/Sc/Tutorials/Tutorial12), оглядываясь назад, но я не понял! Спасибо за ваше время. – Scarophion

Смежные вопросы