2015-06-23 12 views
17

Sto tentando di accedere ai parametri di stringa di query nelle mie applicazioni ASP.NET MVC6. Ma sembra a differenza di forme MVC5 e web, QueryString non ha alcun indicizzatore e non posso dire qualcosa di simile:Accesso a querystring in ASP.NET MVC6

string s = Request.QueryString["key1"] //gives error 

Quindi, la mia domanda è - come posso accedere ai parametri di stringa di query in MVC6?

Sorprendentemente Request.Forms la raccolta funziona come previsto (come in MVC5 o moduli Web).

Grazie.

+0

quale errore hai ottenuto? –

+0

Non si dovrebbe utilizzare QueryString o Form in MVC, invece si dovrebbe avere un parametro nel controller che si legherà automaticamente ai valori. –

risposta

28

Ottenere query con un indicizzatore è supportato.

prova codice See MVC qui - https://github.com/aspnet/Mvc/blob/e0b8532735997c439e11fff68dd342d5af59f05f/test/WebSites/ControllersFromServicesClassLibrary/QueryValueService.cs

context.Request.Query["value"]; 

Si noti inoltre che in MVC 6 è possibile modellare legano direttamente dalla query utilizzando l'attributo [FromQuery].

public IActionResult ActionMethod([FromQuery]string key1) 
{ 
    ... 
} 
+0

'[FromQuery]' è quello che mi mancava – gldraphael

+0

Questo è in realtà un momento di apprendimento. Non avevo idea che [FromQuery] esistesse. Non sembra essere ben documentato. C'è anche un [FromHeader] e [FromForm] tra gli altri. È anche possibile scrivere raccoglitori personalizzati. –

17

Quindi, la mia domanda è: come accedere ai parametri della stringa di query in MVC6?

È possibile utilizzare Request.Query che è nuova aggiunta nel ASPNET 5.

var queryStrings = Request.Query; 

L'URL ho intenzione di provare era - http://localhost:12048/Home/Index?p=123&q=456 e si possono ottenere tutte le chiavi utilizzando -

queryStrings.Keys 

enter image description here

E quindi è possibile ottenere i valori di iterat ing chiavi -

var qsList = new List<string>(); 
foreach(var key in queryStrings.Keys) 
{ 
     qsList.Add(queryStrings[key]); 
} 

enter image description here

Problemi correlati