J'ai une simple page Razor avec une liste de transactions. J'essaie d'implémenter la pagination pour cela. J'ai ajouté la méthode suivante dans le modèle de page :

public async Task OnGetAsync(int? page, int? rows)
{
    //The logic
}

Quand j'appelle cette méthode par l'URL :

/transactions

Cela fonctionne comme prévu : la page et les lignes sont toutes deux égales à null.

Cependant, si j'essaie d'appeler cette méthode par l'URL suivante :

/transactions?page=3&rows=2

Les lignes sont égales à 2, mais la page est nulle. Cela m'a l'air bizarre. Pourquoi ça marche comme ça ? Je sais que je peux créer une propriété et l'utiliser à partir de la requête :

[BindProperty(SupportsGet = true)]
public int CurrentPage { get; set; }

Mais je voulais savoir pourquoi le paramètre de page a une valeur nulle et l'utiliser si c'est possible.

0
Grigory Zhadko 7 sept. 2020 à 13:54

1 réponse

Meilleure réponse

Le mot 'page' est réservé dans asp.net/razor et ne peut pas être utilisé directement comme paramètre de méthode.

Pour résoudre mon problème, j'ai dû utiliser:

public async Task OnGetAsync([FromQuery] int? page, int? rows)
0
Grigory Zhadko 16 nov. 2020 à 18:35