42 lines
936 B
Plaintext
42 lines
936 B
Plaintext
@page "/{Slug}"
|
|
@using Elternbeirat.Web.Services
|
|
@inject SeitenService SeitenService
|
|
|
|
@if (_seite is null)
|
|
{
|
|
<PageTitle>Nicht gefunden</PageTitle>
|
|
}
|
|
else
|
|
{
|
|
<PageTitle>@_seite.Titel</PageTitle>
|
|
<article>
|
|
@((MarkupString)_seite.InhaltHtml)
|
|
</article>
|
|
}
|
|
|
|
@code {
|
|
[Parameter]
|
|
public string Slug { get; set; } = "";
|
|
|
|
private Seite? _seite;
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
_seite = SeitenService.Finde(Slug);
|
|
|
|
// Unbekannter Slug -> 404, damit UseStatusCodePagesWithReExecute die
|
|
// /not-found-Seite ausliefert (statt einer leeren 200er-Antwort).
|
|
if (_seite is null)
|
|
{
|
|
var kontext = HttpContext;
|
|
if (kontext is not null)
|
|
{
|
|
kontext.Response.StatusCode = StatusCodes.Status404NotFound;
|
|
}
|
|
}
|
|
}
|
|
|
|
[CascadingParameter]
|
|
private HttpContext? HttpContext { get; set; }
|
|
}
|