2011-09-22 8 views
5

Tengo una publicación similar sobre esto en StackOverflow pero tal vez mi malentendido es más sustancial. Tengo un índice de acción() y un índice para ver su representación. Desde la vista de índice() según el botón presionado [HttpPost] Se debe llamar a Index() o [HttpPost] Search() porque estoy publicando algunos datos. ¿La única forma de publicar en diferentes acciones es mediante el uso de jQuery? Si jQuery es la única manera, si mis acciones devuelven vistas (completa páginas en HTML), ¿tengo que limpiar todo el elemento del documento desde $ .post y llenarlo con mis vistas html? Soy bastante nuevo en todo esto, ¡muchas gracias!Publicación de la misma forma para diferentes acciones dependiendo del botón presionado

@using (Html.BeginForm()) 
{ 
    <input name="startDate" type="text" size="20" class="inputfield" id="datepicker" /> 
    <a href="#" id="apply_button">...</a> 
    <a href="#" id="go_button">...</a> 
} 


public ActionResult Index(string lang) 
{ 
    return View(); 
} 

//Perhaps this action is needed 
[HttpPost] 
public ActionResult Index(string lang, string startDate) 
{ 
    return View(); 
} 

[HttpPost] 
public ActionResult Search(string lang, string startDate) 
{ 
    return View(); 
] 
+0

¿Podría proporcionar algún código –

+0

@DavidLaberge: acaba de agregar el código. Por favor échale un vistazo. – mishap

+0

posible duplicado de [¿Cómo puedo asignar diferentes acciones al mismo formulario html?] (Http://stackoverflow.com/questions/3999627/how-cani-i-assign-different-actions-to-same-html-form) – Meryovi

Respuesta

14

Puede cambiar el atributo de acción del formulario dependiendo del botón en el que se hizo clic.

p. Ej. Para publicar una entrada en la acción de 'búsqueda' cuando se hace clic en el botón 'ir':

$('#go_button').click(function() { 
    $('form').attr("action", "Search"); //change the form action 
    $('form').submit(); // submit the form 
}); 
+0

Pero estoy publicando el mismo contenido de campo de texto para diferentes acciones dependiendo del botón en el que se haga clic. ¿Cómo puedo tener dos formas diferentes sin duplicar el html por favor? ¡Gracias! Por cierto, agregué el código en la pregunta original. – mishap

+0

He actualizado la respuesta en función de su código publicado. –

+0

Gracias! ¡Lo hiciste! Nadie más podría ayudarme con esto. – mishap

0

adicional de respuesta aceptada cuando están en necesidad de cambiar la acción, así como regulador demasiado:

$('#go_button').click(function() { 
    $('form').attr("action", "@("Search","OtherControllerName")"); //change the form action 
    $('form').submit(); // submit the form 
}); 
Cuestiones relacionadas