C# Passa più parametri a un metodo Get

  1. Passa più parametri a un metodo Get utilizzando Controller Action in C
  2. Snippet di codice per passare più parametri a un metodo Get utilizzando Attribute Routing
  3. Snippet di codice per passare più parametri a un metodo Get utilizzando [FromQuery]

ASP.NET MVC viene utilizzato per sviluppare applicazioni web. Il framework MVC Web API e Web pages è ora unito in un framework chiamato MVC 6. MVC è un pattern che consente di interagire con il modello, la vista e il controller tramite le richieste instradate.

In questo articolo, stiamo discutendo i vari metodi utilizzati per passare più parametri a un metodo Get in un controller MVC.

Passa più parametri a un metodo Get utilizzando Controller Action in C

Una controller action è un metodo utilizzato per gestire le richieste in arrivo. E restituisce il risultato dell'azione. Il risultato dell'azione è la risposta alle richieste in arrivo. In questo caso, abbiamo utilizzato l’azione del controller per passare più parametri a un metodo Get.

Codice di esempio:

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);
}

Snippet di codice per passare più parametri a un metodo Get utilizzando Attribute Routing

In routing degli attributi, usiamo attributi per definire rotte. È un metodo consigliato perché riduce le possibilità di errore. Ti dà un maggiore controllo sugli URL nella tua API Web.

La sintassi corretta per utilizzare questo metodo è la seguente:

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

Codice di esempio:

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

Snippet di codice per passare più parametri a un metodo Get utilizzando [FromQuery]

[FromQuery] viene utilizzato per specificare che un parametro deve essere associato alla stringa della richiesta. È di proprietà della classe FromQueryAttribute.

La sintassi corretta per utilizzare questa proprietà è la seguente:

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

    }

Codice di esempio:

[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)
    {

    }
}

Articolo correlato - Csharp Method

  • Passare un metodo come parametro nella funzione C#