Pages
A standard page in Blazor, using the @page
directive, will work as expected, and will be automatically registered on the pilet API.
You can also set multiple @page
directives, which will all lead to page registrations.
Route Parameters
If you want to match the route parameter you can use the generic approach, too:
@page "/foo/{id}"
<div>@Id</div>
@code {
[Parameter]
[PiralParameter("match.params.id")]
public string Id { get; set; }
}
However, since using match.params
is quite verbose and easy to get wrong you can also use the special PiralRouteParameter
attribute.
@page "/foo/{id}"
<div>@Id</div>
@code {
[Parameter]
[PiralRouteParameter("id")]
public string Id { get; set; }
}
Note that there is another convenience deriving from the use of PiralRouteParameter
. If your route parameter name matches the name of the property then you can also omit the argument:
@page "/foo/{Id}"
<div>@Id</div>
@code {
[Parameter]
[PiralRouteParameter]
public string Id { get; set; }
}
Query Parameters
In addition to route parameters you can also match the query parameters using the PiralQueryParameter
attribute:
@page "/foo"
<div>@Id</div>
@code {
[Parameter]
[PiralQueryParameter]
public string Id { get; set; }
}
The previous example would match /foo?id=bar
with Id
being set to bar
. You could also change the name of the used query parameter:
@page "/foo"
<div>@SearchQuery</div>
@code {
[Parameter]
[PiralQueryParameter("q")]
public string SearchQuery { get; set; }
}
This would print hello
for /foo?q=hello
.