0
votes

.NET CORE Web API API d'acceptation de la liste des entiers en tant qu'intrée param dans http get API

J'utilise l'API WEB .NET CORE 3+.

Vous trouverez ci-dessous la façon dont mon action ressemble au ci-dessous, elle utilise HTTP GET et je souhaite passer quelques champs et l'un des champs est une liste d'entiers. xxx

et voici citysquery classe - xxx

existe-t-il une manière générique que je peux utiliser Acceptez la liste des entiers comme entrée et non accepter la chaîne, puis analysez-le?

ou y a-t-il un meilleur moyen de le faire? J'ai essayé de googler mais je ne pouvais pas trouver grand chose. Merci d'avance.


2 commentaires

Il n'y a pas de convention sur les tableaux de valeur de passage dans les paramètres de requête. Chaque langue et cadre utilise ses propres conventions. Avez-vous essayé [fromuri] int [] Stateelist ? Comment voulez-vous transmettre ces paramètres?


La convention ASP.NET COE consiste à autoriser plusieurs instances de paramètres, par exemple IDS = 1 & IDS = 2 & IDS = 3 et les lier à un seul IDS


3 Réponses :


0
votes

Je pense que vous devez juste avoir besoin d'utiliser [fromuri] code> strud> avant le paramètre de tableau Int:

/cities?stateList=1&stateList=2&stateList=3 


3 commentaires

Je veux passer les Stadids = 1,2,3


@YASSERSHAIKH C'est un paramètre de chaîne nommé StideIDs avec valeur 1,2,3 . Il n'y a pas de convention sur les tableaux de valeur de passage dans les paramètres de requête


Vous pouvez jeter un coup d'oeil à ce message: Stackoverflow.com/Questtions/9584573/...



2
votes

Ceci peut aider xxx

mais la chaîne de requête changera à https: // localhost / API / contrôleur / villes? Stasids = 1 & Stadids = 2 & Stadids = 3

Si vous avez besoin d'une chaîne de requête séparée par des virgules avec entier, vous pouvez opter pour Custom Model Binder

HTTPS: // docs.microsoft.com/en-us/aspnet/core/mvc/advanced/custom-model-binding?view=aspnetcore-3.1


0 commentaires

1
votes

Vous pouvez utiliser une liaison de modèle personnalisée, ci-dessous est une démonstration de travail:

Modèle: P>

[HttpGet]
[Route("cities")]
public ActionResult GetCities([ModelBinder(BinderType = typeof(CustomModelBinder))] CityQuery query)
{
    return View();
}


1 commentaires

Bonjour @yasser Shaikh, cette réponse peut-elle vous aider à résoudre le problème?