генерация заголовка страницы с помощью скрипта бритвы — umbraco

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

HTML

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

Скрипт -

@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;
        }
    }

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


person Dante    schedule 16.11.2014    source источник


Ответы (2)


Попробуйте этот код. Проблема с исходным кодом заключается в том, что вы использовали "@Model.DescendantsOrSelf("Country")" как логическое значение, а это список. Я также удалил ваше сравнение для 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;
        }
    }
person Hideous1    schedule 01.12.2014
comment
Спасибо Ужасный! Я не думал об этом так, и теперь он отлично работает, очень признателен. Д - person Dante; 05.12.2014
comment
@ Данте - я рад, что смог помочь. Я все еще изучаю этот материал, поэтому любая помощь, которую я могу оказать, также помогает мне. Если у вас есть шанс, отметьте это как ответ, чтобы он мог обновляться, и я мог получить доверие LOL! Удачи! знак равно - person Hideous1; 22.10.2015

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

@Umbraco.Field("pageName")

отобразит pageName, вы также можете добавить пользовательские свойства из типа документа. например вы добавили новое свойство, такое как «metaKeywords» со значением «html, javascript, xml», извлеките эти значения следующим образом...

@Umbraco.Field("metaKeywords")

даже вам не нужно добавлять пользовательские свойства в вашу модель

person Nimesh khatri    schedule 21.04.2016