C# Passa più parametri a un metodo Get

Minahil Noor 12 ottobre 2023
  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]
C# Passa più parametri a un metodo Get

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