Sto tentando di supportare più metodi Get() per controller, oltre a metodi appositamente denominati accessibili tramite web api. Ho fatto questo in MVC 5, ma non riesco a capire come è fatto in MVC 6. Qualche idea? Grazie.MVC 6 Metodi di acquisizione multipli
risposta
È possibile utilizzare l'attributo di routing link this -
[Route("api/[controller]")] /* this is the defualt prefix for all routes, see line 20 for overridding it */
public class ValuesController : Controller
{
[HttpGet] // this api/Values
public string Get()
{
return string.Format("Get: simple get");
}
[Route("GetByAdminId")] /* this route becomes api/[controller]/GetByAdminId */
public string GetByAdminId([FromQuery] int adminId)
{
return $"GetByAdminId: You passed in {adminId}";
}
[Route("/someotherapi/[controller]/GetByMemberId")] /* note the/at the start, you need this to override the route at the controller level */
public string GetByMemberId([FromQuery] int memberId)
{
return $"GetByMemberId: You passed in {memberId}";
}
[HttpGet]
[Route("IsFirstNumberBigger")] /* this route becomes api/[controller]/IsFirstNumberBigger */
public string IsFirstNumberBigger([FromQuery] int firstNum, int secondNum)
{
if (firstNum > secondNum)
{
return $"{firstNum} is bigger than {secondNum}";
}
return $"{firstNum} is NOT bigger than {secondNum}";
}
}
Vedi qui per maggiori dettagli - http://nodogmablog.bryanhogan.net/2016/01/asp-net-5-web-api-controller-with-multiple-get-methods/
Non è possibile avere più metodi Ottieni con lo stesso modello di URL. Puoi utilizzare il routing degli attributi e impostare più metodi GET per i diversi pattern URL.
[Route("api/[controller]")]
public class IssuesController : Controller
{
// GET: api/Issues
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "item 1", "item 2" };
}
// GET api/Issues/5
[HttpGet("{id}")]
public string Get(int id)
{
return "request for "+ id;
}
// GET api/Issues/special/5
[HttpGet("special/{id}")]
public string GetSpecial(int id)
{
return "special request for "+id;
}
// GET another/5
[HttpGet("~/another/{id}")]
public string AnotherOne(int id)
{
return "request for AnotherOne method with id:" + id;
}
// GET api/special2/5
[HttpGet()]
[Route("~/api/special2/{id}")]
public string GetSpecial2(int id)
{
return "request for GetSpecial2 method with id:" + id;
}
}
Si può vedere che ho usato entrambe le HttpGet
e Route
attributi per definire i modelli di percorso.
Con la configurazione sopra, si si otterrà le risposte qui sotto
richiesta URL: tuoSito/api/temi/
Risultato ["value1","value2"]
richiesta di URL: yourSite/api/issues/4
Risultato request for 4
richiesta URL: tuoSito/api/Speciale 2/6
Risultato request for GetSpecial2 method with id:6
richiesta URL: tuoSito/altro/3
Risultato request for AnotherOne method with id:3
Impressionante! Grazie mille. –
vedi gentilmente la mia [domanda] (https://stackoverflow.com/questions/46680893/passing-multiple-parameters-to-web-api-get-method) – faisal1208
- 1. PostgreSQL metodi di autenticazione multipli
- 2. Dove sono i metodi @ Json.Encode o @ Json.Decode in MVC 6?
- 3. Livelli multipli nell'instradamento personalizzato MVC
- 4. Metodi multipli main() in java
- 5. metodi multipli chiamati 'tag' trovato
- 6. metodi multipli per lavoratore sidekiq
- 7. GetOwinContext in MVC 6
- 8. MVC 6 HttpPostedFileBase?
- 9. C# MVC di routing - percorsi multipli
- 10. Spring MVC con vista multipli resolver
- 11. MVC 6 Tag Helpers Intellisense?
- 12. MVC 6 404 non trovato
- 13. AsyncController mancante in MVC 6
- 14. Fabbrica controller ASP.NET MVC 6
- 15. MVC 6 ritorno cambiare tipo di contenuto
- 16. Iniezione di OData v4 in MVC 6
- 17. Come mappare i controller multipli in Spring MVC
- 18. Domini multipli con mvc a molla
- 19. ASP.NET MVC - View con modelli multipli
- 20. Metodi di azione ambigua di ASP.NET MVC
- 21. WCF Contratti multipli con nomi di metodi duplicati
- 22. Metodi di flatMap multipli per una singola monade?
- 23. ID di destinazione di aggiornamento multipli con Ajax.ActionLink ASP.Net MVC
- 24. Utilizzo dei metodi di azione ASP.NET MVC
- 25. MVC 6 - Modifiche da RC1 a RC2
- 26. Continua Supporto Ninject in ASP.NET MVC 6?
- 27. MVC 6 Tag Helpers e foreach
- 28. Visualizzazione rendering da DB in MVC 6
- 29. MVC 6: come utilizzare i file RESX?
- 30. ASP 5, MVC 6 invio e-mail
Grazie! Questa era una soluzione migliore, dato che posso usare normali percorsi nidificati. –
vedi gentilmente la mia [domanda] (https://stackoverflow.com/questions/46680893/passing-multiple-parameters-to-web-api-get-method) – faisal1208