2012-09-04 14 views
6

Ho il seguente moduloASP.NET MVC Passando valori del modulo a metodo di azione

<form name="SearchForm" method="post" id="SearchForm" action="/Search/"> 

E il seguente pulsante di

<input type="button" onclick="javascript:document.SearchForm.submit();" class="btn-leftsearch"> 

Facendo clic su questo pulsante, il modulo sottopone e chiama questo metodo

[HttpPost] 
public ActionResult Index(string querystring) 
{ 
    return View(); 
} 

Ovviamente querystring è nullo. Voglio passare querystring o preferibilmente qualcos'altro che rappresenta i campi nel modulo per il controller. Ho provato a giocare con l'attributo action nel tag form. Ho provato ad aggiungere i dati al metodo onclick nel pulsante. Niente funziona. Tutto quello che voglio fare è passare alcuni dati come questo

Search?pri=all&amenity=pool etc 

Nel controllore vorrei avere qualcosa di simile

[HttpPost] 
public ActionResult Index(string pri, List<string> amenities) 
{ 
    ... 
} 

Qualcuno può dirmi come posso passare questi dati alla vista?

risposta

11

Mi piacerebbe suggerire che è possibile utilizzare il seguente codice snip per risolvere il problema.

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Index(FormCollection collection) 
{ 
    string valueFromNameTextBox = collection["name"]; 
} 

sulla raccolta si prega di inserire il nome della casella di testo di ricerca. Si otterrà il valore inserito effettivo. È possibile indicizzare in questa raccolta i nomi di tutti gli input nel modulo.

+1

Vedo ma ho altri dati che voglio passare anche quelli che non sono nei campi modulo. Come faccio a passare quelli? –

Problemi correlati