38 lines
832 B
Plaintext
38 lines
832 B
Plaintext
@page "/{Slug}"
|
|
@using Elternbeirat.Web.Services
|
|
@inject PageService PageService
|
|
|
|
@if (_page is null)
|
|
{
|
|
<PageTitle>Nicht gefunden</PageTitle>
|
|
}
|
|
else
|
|
{
|
|
<PageTitle>@_page.Title</PageTitle>
|
|
<article>
|
|
@((MarkupString)_page.ContentHtml)
|
|
</article>
|
|
}
|
|
|
|
@code {
|
|
[Parameter]
|
|
public string Slug { get; set; } = "";
|
|
|
|
private Page? _page;
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
_page = PageService.Find(Slug);
|
|
|
|
// Unknown slug -> 404, so UseStatusCodePagesWithReExecute serves the
|
|
// /not-found page instead of an empty 200 response.
|
|
if (_page is null && HttpContext is not null)
|
|
{
|
|
HttpContext.Response.StatusCode = StatusCodes.Status404NotFound;
|
|
}
|
|
}
|
|
|
|
[CascadingParameter]
|
|
private HttpContext? HttpContext { get; set; }
|
|
}
|