برای اینکه در Blazor بتوانید به راحتی پارامترهای QueryString رو دریافت کنید. کافی است موارد زیر را رعایت کنید:
- روش اول
@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"];
}
}