C# passer plusieurs paramètres à une méthode d'obtention

  1. Passer plusieurs paramètres à une méthode Get en utilisant Controller Action en C
  2. Extrait de code pour passer plusieurs paramètres à une méthode Get en utilisant le Attribute Routing
  3. Extrait de code pour passer plusieurs paramètres à une méthode Get en utilisant [FromQuery]

L’ASP.NET MVC est utilisé pour développer des applications web. L’API Web MVC et le cadre des pages Web sont maintenant fusionnés en un seul cadre appelé MVC 6. MVC est un modèle qui vous permet d’interagir avec le modèle, la vue et le contrôleur via des requêtes qui sont routées.

Dans cet article, nous discutons des différentes méthodes qui sont utilisées pour passer plusieurs paramètres à une méthode Get dans un MVC controller.

Passer plusieurs paramètres à une méthode Get en utilisant Controller Action en C

Une Controller Action est une méthode utilisée pour traiter les demandes entrantes. Elle renvoie le résultat de l'action. Le résultat de l'action est la réponse aux demandes entrantes. Dans ce cas, nous avons utilisé l’action du contrôleur pour passer plusieurs paramètres à une méthode Get.

Exemple de code:

public string Get(int? id, string FirstName, string LastName, string Address)
{
   if (id.HasValue)
      GetById(id);
   else if (string.IsNullOrEmpty(Address))
      GetByName(FirstName, LastName);
   else
      GetByNameAddress(FirstName, LastName, Address);
}

Extrait de code pour passer plusieurs paramètres à une méthode Get en utilisant le Attribute Routing

Dans le routage par attributs, nous utilisons des attribute pour définir les routes. C’est une méthode recommandée car elle réduit les risques d’erreur. Elle vous donne plus de contrôle sur les URL de votre API Web.

La syntaxe correcte pour utiliser cette méthode est la suivante:

//Specify route
[Route("api/YOURCONTROLLER/{parameterOne}/{parameterTwo}")]
    public string Get(int parameterOne, int parameterTwo)
    {
        return $"{parameterOne}:{parameterTwo}";}
    }

Exemple de code:

//Specify route
[Route("api/yourControllerName/{FirstName}/{LastName}/{Address}")]
public string Get(string id, string FirstName, string LastName, string Address)
{
    return $"{FirstName}:{LastName}:{Address}";
}

Extrait de code pour passer plusieurs paramètres à une méthode Get en utilisant [FromQuery]

On utilise FromQuery pour spécifier qu’un paramètre doit être lié à la chaîne de la requête. C’est la propriété de la classe FromQueryAttribute.

La syntaxe correcte pour utiliser cette propriété est la suivante:

[HttpGet]
    public string GetByAttribute([FromQuery]string parameterOne, [FromQuery]string parameterTwo)
    {

    }

Exemple de code:

[Route("api/person")]
public class PersonController : Controller
{
    [HttpGet]
    //Passing one parameter to the Get method
    public string GetById([FromQuery]int id)
    {

    }

    [HttpGet]
    //Passing two parameters to the Get method
    public string GetByName([FromQuery]string firstName, [FromQuery]string lastName)
    {

    }

    [HttpGet]
    //Passing multiple parameters to the Get method
    public string GetByNameAndAddress([FromQuery]string firstName, [FromQuery]string lastName, [FromQuery]string address)
    {

    }
}