Skip to main content
Home  › ... Razor

Razor Page Service Tutorials

Tutorial Home
#3 Page Icons for Favicon, Apple/Android
Requirements

IPageService AddIcon to Html Headers

This page sets various icon headers according to best practices.

Info about the Base Class

This tutorial inherits from the Custom.Hybrid.Razor14 base class.

This allows us to use Kit.Page to access an IPageService without having to use GetService<IPageService>

Look at the html-header in the output-source to see the effect.
The following links will set different icons depending on what you need.
@{
  // use url parameter to decide which icon(s) to show, and default to "set"
  var mode = CmsContext.Page.Parameters["mode"];

  // the icon we want to use for this page is this png file
  var iconUrl = App.Path + "/blade/assets/razor-blade-icon.png";

  // now add the headers depending on the demo you picked
  // in your code you would only use one of these
  if(mode == "one") {
    Kit.Page.AddIcon(iconUrl);
  }
  else if (mode == "set") {
    Kit.Page.AddIconSet(iconUrl);
  }
  else if (mode == "nofav") {
    Kit.Page.AddIconSet(iconUrl, favicon: false);
  }
  else if (mode == "pngfav") {
    Kit.Page.AddIconSet(iconUrl, favicon: iconUrl);
  }
}
#3 Page Icons for Favicon, Apple/Android

Source Code of this file

Below you'll see the source code of the file. Note that we're just showing the main part, and hiding some parts of the file which are not relevant for understanding the essentials. Click to expand the code

@inherits Custom.Hybrid.Razor14
@using ToSic.Razor.Blade;
<!-- unimportant stuff, hidden -->


<div @Sys.PageParts.InfoWrapper()>
  @Html.Partial("../shared/_DefaultInfoSection.cshtml")
  <div @Sys.PageParts.InfoIntro()>
      <h2><em>IPageService</em> AddIcon to Html Headers</h2>
      <p>This page sets various icon headers according to best practices. </p>
    </div>
  </div>
  @Html.Partial("../shared/_KitBaseClassInfoBox.cshtml", new { ServiceName = "Page", Service = "IPageService" })
  <div>
    Look at the html-header in the output-source to see the effect. <br>
    The following links will set different icons depending on what you need.
  </div>
  <ul>
    @SubpageLink("Just add single icon", "one")
    @SubpageLink("Add default set incl. favicon and apple-touch", "set")
    @SubpageLink("Add default set without favicon", "nofav")
    @SubpageLink("Add default set with custom favicon (recommended)", "pngfav")
  </ul>

  @{
    // use url parameter to decide which icon(s) to show, and default to "set"
    var mode = CmsContext.Page.Parameters["mode"];

    // the icon we want to use for this page is this png file
    var iconUrl = App.Path + "/blade/assets/razor-blade-icon.png";

    // now add the headers depending on the demo you picked
    // in your code you would only use one of these
    if(mode == "one") {
      Kit.Page.AddIcon(iconUrl);
    }
    else if (mode == "set") {
      Kit.Page.AddIconSet(iconUrl);
    }
    else if (mode == "nofav") {
      Kit.Page.AddIconSet(iconUrl, favicon: false);
    }
    else if (mode == "pngfav") {
      Kit.Page.AddIconSet(iconUrl, favicon: iconUrl);
    }
  }



<!-- unimportant stuff, hidden -->