Domanda

Ho una vista e un controller nel mio ASP.net MVC applicazione.

Ho un pulsante "Invia" e un pulsante "Annulla", a mio avviso.

Quando scatto una delle bottone qui sotto azione verrà attivato.

AcceptVerbs (HttpVerbs.Post)

ActionResult pubblico Risultato ()

{

}

Ora la domanda è come saprò nella mia Risultato ActionResult pubblico (), sia palo causato a causa di "Invia" o "Annulla" ??

È stato utile?

Soluzione

si può provare come

function OnBeginRequest(sender, args) {
        var postBackElement = args.get_postBackElement();
if ((postBackElement.id == '<%= btnSave.ClientID %>')
  {

  }
}

Altri suggerimenti

Si potrebbe risolvere il problema con le seguenti operazioni:

i. Posizionare un campo nascosto chiamato 'annullare' in forma il tuo punto di vista. Dategli un valore predefinito di false .

II. Nel caso in cui onclick per il pulsante di annullamento, aggiungere il seguente script:

document.getElementById('cancel').value = true; document.getElementById('myForm').submit();

Change 'myForm' di essere il nome del modulo.

III. Modificare la firma del metodo per il risultato () per la seguente:

public ActionResult Result(bool cancel)

attraverso il legame del modello, il valore del vostro campo nascosto 'annullare' sarà accessibile nella firma del metodo di azione.

Grazie per le risposte. Una soluzione più ho ottenuto è,

public ActionResult Result()
    {
        if (Request.Params.ToString().IndexOf("btnSubmit") > 0)
            //
        else
            //
    }

Vorrei suggerire che il pulsante "Annulla" non deve inviare il modulo. Ci sono diversi modi per gestire questo, ma la più semplice sarebbe quella di avere un evento onclick javascript sul pulsante che consente di ritornare alla pagina precedente. (history.go(-1)) Se questo non soddisfa le vostre esigenze, è anche possibile specificare un percorso specifico per navigare. Più complessa sarebbe quella di intercettare il click sul lato client e decidere quale strada ha colpito, ma io di solito farlo solo se voglio avere più pulsanti di invio del modulo che ha colpito diverse azioni, e questa è una situazione abbastanza rara.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top