2014-11-16 4 views
0

Итак, я пытаюсь создать сценарий, в соответствии с которым в зависимости от типа документа страницы будет отображаться определенный заранее определенный формат тега заголовка, если ничего не написано в переписывании пользовательского заголовка вход. Я вставил макрос в тег title на мой главный шаблон, но продолжаю получать сообщение об ошибке «Ошибка загрузки Razor Script».генерация заголовка страницы с помощью скрипта razor - umbraco

Html

<title> 
    <umbraco:Macro Alias="NewPageTitle" runat="server"></umbraco:Macro> 
</title> 

Script -

@inherits umbraco.MacroEngines.DynamicNodeContext 
@using umbraco.MacroEngines 

    @{ 
     if(String.IsNullOrEmpty(@Model.tabName.ToString()) == false) 
     { 
      @Model.tabName 
     } 

     else if(@Model.DescendantsOrSelf("Country")) 
     { 
      <text> 
      Holidays in @Model.Name 
      </text> 
     } 

     else 
     { 
      @Model.Name; 
     } 
    } 

Любая помощь будет принята с благодарностью.

ответ

0

Попробуйте этот код. Проблема с вашим исходным кодом заключается в том, что вы использовали «@ Model.DescendantsOrSelf (« Страна »)» как булевский, и это список. Я также удалил ваше сравнение для if (String.IsNullOrEmpty (@ Model.tabName.ToString())).

Кроме того, если вы добавите ? UmbDebugShowTrace = true в конец вашего URL-адреса, вы можете получить ценную информацию об отладке. Существует расширение Chrome, называемое «Umbraco Debug», которое я использую для быстрого доступа к этой строке запроса и информации. Вы можете найти это полезным.

@inherits umbraco.MacroEngines.DynamicNodeContext 
@using umbraco.MacroEngines 

    @{ 
     if(String.IsNullOrEmpty(@Model.tabName.ToString())) 
     { 
      @Model.tabName 
     } 

     else if(@Model.DescendantsOrSelf("Country").Count() > 0) 
     { 
      <text> 
      Holidays in @Model.Name 
      </text> 
     } 

     else 
     { 
      @Model.Name; 
     } 
    } 
+0

Thanks Hideous! Я так и не подумал об этом и отлично работает сейчас, очень ценю. D – Dante

+0

@ Dante - Я рад, что смогу помочь. Я все еще изучаю этот материал, поэтому любая помощь, которую я могу предоставить, также помогает мне. Если у вас есть шанс, отметьте это как ответ, чтобы он мог обновиться, и я могу получить «cred» LOL! Удачи! знак равно – Hideous1

0

его очень просто просто добавьте следующий код в ваш тег заголовка

@Umbraco.Field("pageName") 

будет отображаться Pagename, вы можете добавить пользовательские свойства от типа документа. , например. Вы добавили новое свойство, как «metaKeywords» со значением «HTML, JavaScript, XML», принеси, что значения, как следующим образом ...

@Umbraco.Field("metaKeywords") 

даже вам не нужно, чтобы добавить пользовательские свойства в модели

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