I'm trying to validate the URL in a Blazor server-side page. The parameter value needs to be a value in an enum. If the URL value isn't one of the enum values, I'd like to return an HTTP response 404.
I realise that Blazor's way of handling stuff is a bit different from vanilla ASP.NET, so I'm not even sure this is possible. The examples I've managed to find all navigate to a 'not found' page. That might work, but I'd prefer a 404 error.
Here's an example to illustrate what I'm trying to do.
page "/{Value?}"
<h1>@ParsedValue.ToString()</h1>
@code {
[Parameter]
public string Value { get; set; }
public MyEnum ParsedValue { get; private set; }
protected override void OnParametersSet()
{
if (!string.IsNullOrEmpty(Value))
{
MyEnum parsedValue;
if (!Enum.TryParse<MyEnum>(Value, out parsedValue))
{
// return 404 not found
}
ParsedValue = parsedValue;
}
base.OnParametersSet();
}
public enum MyEnum
{
Apples,
Oranges,
Bananas
}
}