Skip to main content
Home  › ... Razor

Basics: Linking and URL Parameters

Tutorial HomeLinking

Linking with Number Url Parameters

The samples can differ based on your Razor base class or if you're running an old version.
Switch to Typed (2sxc 16+) Selected: Dynamic (Razor14 or below)

Working with Number URL Parameters

When you expect a number, you usually need to convert it to an int or similar for further use. Otherwise you'll be comparing numbers with strings. For example if (3 == "3") would return false - which is not what you usually want.
Additionally, you usually want to ensure that if no parameter is found, you will have a default value - othertise you may run into errors.

⬇️ Result | Source ➡️

Click on the links to change the url-parameters of this page and see the results below.


  • Raw id from URL:
    Equal to string "27": False
    Equal to number 27: (would throw error)
  • Number id from URL: 0
    Equal to string "27": (would throw error)
    Equal to number 27: False
  • Number id from URL or -1: -1
    Equal to string "27": (would throw error)
    Equal to number 27: False
@inherits Custom.Hybrid.Razor14
@using ToSic.Razor.Blade

@{
  // This variable is a string, but could be null or empty
  var idAsString = CmsContext.Page.Parameters["id"];
  // This converts the id parameter to int. First sample auto-falls back to 0, other to -1
  var id = Kit.Convert.ToInt(CmsContext.Page.Parameters["id"]);
  var idOrMinus1 = Kit.Convert.ToInt(CmsContext.Page.Parameters["id"], -1);
}
<ul>
  <li>
    <strong>Raw id from URL:</strong> @idAsString <br>
    Equal to string "27": @(idAsString == "27") <br>
    Equal to number 27: (would throw error) <br>
  </li>
  <li>
    <strong>Number id from URL:</strong> @id <br>
    Equal to string "27": (would throw error) <br>
    Equal to number 27: @(id == 27) <br>
  </li>
  <li>
    <strong>Number id from URL or -1:</strong> @idOrMinus1 <br>
    Equal to string "27": (would throw error) <br>
    Equal to number 27: @(idOrMinus1 == 27) <br>
  </li>
</ul>