2012-09-04 13 views
6

Tengo el siguiente formularioASP.NET MVC Pasando valores de la forma de método de acción

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

Y el siguiente botón

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

Al hacer clic sobre este botón, la forma se somete y llama a este método

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

Por supuesto querystring is null. Quiero pasar la cadena de consulta o preferiblemente algo más que represente los campos en el formulario al controlador. He intentado jugar con el atributo de acción en la etiqueta de formulario. Intenté agregar los datos al método onclick en el botón. Nada está funcionando. Todo lo que quiero hacer es pasar algunos datos como estos

Search?pri=all&amenity=pool etc 

En el controlador Me gustaría tener algo como

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

Puede alguien decirme cómo puedo pasar estos datos a la vista?

Respuesta

11

Me gustaría sugerirle que puede usar el siguiente fragmento de código para resolver su problema.

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

en la colección coloque el nombre del cuadro de texto de búsqueda. Obtendrás el valor real ingresado. Puede indexar en esta colección con los nombres de todas las entradas en el formulario.

+1

Veo pero tengo algunos otros datos que quiero pasar también que no están en los campos del formulario. ¿Cómo paso esos? –

Cuestiones relacionadas