I know how to pass a parameter from the url to a blazor page like this:
@page "/myPage/{myParameter}"
@if(myParameter != null && myParameter != "")
{
<p>@myParameter</p>
}
@code{
[Parameter]
public string myParameter {get; set;};
}
If I would enter something like this in the browser: www.xyz.com/mypage/TEST I could show 'TEST' on my page. But how can I pass a parameter directly to my injected ViewModel?
This doesn't work @page "/mypage/{ViewModel.myParameter}". The ViewModel is injected via Startup.cs and as a services.AddScoped.
I have a 'workaround':
@code {
[Parameter]
public string myParameter { get; set; }
protected override void OnInitialized() //On Page Load
{
ViewModel.myParameter = myParameter;
}
}
Is there a proper way to do this? Thx for help (still new to blazor)
{ get => ViewModel.myParameter; set => ViewModel.myParameter = value; }I _think _ ViewModel should be injected already.