دریافت QueryString در Blazor

برای اینکه در Blazor بتوانید به راحتی پارامترهای QueryString رو دریافت کنید. کافی است موارد زیر را رعایت کنید:

  1. روش اول
@page "/query-string/{UrlData}"
    [Parameter]
    public string UrlData { get; set; }

در نهایت به شکل زیر می‌شود:

@page "/query-string"
@page "/query-string/{UrlData}"

<h3>Query string data: @UrlData</h3>

@code {

    [Parameter]
    public string UrlData { get; set; }

}

2- روش دوم

کلاس زیر را در کامپوننت مربوطه اینجکت کنید:

@inject NavigationManager navigationManager

متد OnInitialized را override کنید:

protected override void OnInitialized()
{
    var uri = new Uri(navigationManager.Uri);

    //Get query strings
    var queryStrings = System.Web.HttpUtility.ParseQueryString(uri.Query);

    Param1 = queryStrings["p1"];
    Param2 = queryStrings["p2"];

}

تمام.
شکل کامل کد به فرم زیر است:

@page "/query-string"
@page "/query-string/{UrlData}"
@inject NavigationManager navigationManager


<h3>Query string data: @UrlData</h3>

<p>
    QueryString 1: @Param1
</p>
<p>
    QueryString 2: @Param2
</p>

@code {

    [Parameter]
    public string UrlData { get; set; }

    public string Param1 { get; set; }
    public string Param2 { get; set; }

    protected override void OnInitialized()
    {
        var uri = new Uri(navigationManager.Uri);

        //Get query strings
        var queryStrings = System.Web.HttpUtility.ParseQueryString(uri.Query);

        Param1 = queryStrings["p1"];
        Param2 = queryStrings["p2"];

    }

}