2011-09-22 4 views
5

Ho un post simile su StackOverflow ma forse il mio fraintendimento è più sostanziale. Ho un indice di azione() e un indice ne visualizza il rendering. Dalla vista Indice() a seconda del pulsante selezionato [HttpPost] Index() o [HttpPost] Search() deve essere chiamato perché sto pubblicando alcuni dati. L'unico modo per pubblicare su diverse azioni è usare jQuery? Se jQuery è l'unico modo, se le mie azioni restituiscono visualizzazioni (pagine Html complete), devo pulire l'intero elemento del documento da $ .post e riempirlo con le mie viste html? Sono abbastanza nuovo a tutto questo, grazie mille!Pubblicare lo stesso modulo per azioni diverse a seconda del pulsante cliccato

@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

Could You fornire un codice –

+0

@DavidLaberge: è stato appena aggiunto il codice. Per favore guarda. – mishap

+0

possibile duplicato di [Come posso assegnare diverse azioni allo stesso modulo html?] (Http://stackoverflow.com/questions/3999627/how-can-i-assign-different-actions-to-same-html-form) – Meryovi

risposta

14

È possibile modificare l'attributo dell'azione del modulo in base al pulsante su cui è stato fatto clic.

ad es. Per pubblicare all'azione 'ricerca' quando il pulsante 'go' si fa clic:

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

Ma im postare lo stesso contenuto del campo di testo in azioni diverse a seconda del pulsante su cui si è fatto clic. Come posso avere due forme diverse senza duplicare l'html per favore? Grazie! A parte ho aggiunto il codice nella domanda originale. – mishap

+0

Ho aggiornato la risposta in base al codice postato. –

+0

Grazie! L'hai fatta! Nessun altro potrebbe aiutarmi con questo. – mishap

0

addizionale alla risposta accettata quando si è in necessità di cambiare l'azione così come controller troppo:

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