2012-03-10 12 views
8

Ho creato un'applicazione mvc una volta completata la registrazione, vengo reindirizzato alla pagina di ringraziamento.Come utilizzare la finestra di messaggio nel controller MVC?

ma invece di quello voglio mostrare popup messaggio, quindi come posso fare questo. il mio codice:

[HttpPost] 
     public ActionResult Enquiry(Enquiry enquiry) 
     { 
      if (ModelState.IsValid) 
      { 
       dbEntities.Enquiries.AddObject(enquiry); 
       dbEntities.SaveChanges(); 
       enquiry.SendEnquiryEmail(enquiry); 

       return RedirectToAction("Thankyou"); 
      } 
      return View(enquiry); 
     } 

     //redirect to thankyou page 
     public ActionResult Thankyou() 
     { 
      return View(); 
     } 

risposta

4

@Reynolds

La tua risposta è perfetta.

In rasoio, la seguente riga può essere sostituito

alert("@TempData[alertMessage]"); 

dal seguente

alert('@TempData["alertMessage"]'); 

PS. Si noti le quotazioni

+1

La risposta è semplice. Non ha funzionato per me quindi sapevo che era dovuto alle citazioni. Una volta fissate le virgolette, ha funzionato. –

+1

Siamo sviluppatori e, cosa più importante, la logica ha funzionato in modo che la risposta mi sembrasse genuina. L'ho appena corretto per assicurarmi che qualcuno che sta imparando MVC non si blocchi. Non capisco cosa vuoi dimostrare.Se vuoi che ti dica che sei un genio, allora così sia. Grazie geniale per aver segnalato l'errore. –

1

Sul web si sarà necessario utilizzare Javascript per visualizzare una finestra di messaggio. La sintassi (Per andare nel vostro punto di vista è nella sua forma più semplice)

Alert("Hello There!"); 

Non è possibile chiamare questo direttamente dal controller. Inserisci semplicemente il codice sopra nella tua vista ThankYou.

Questo è molto semplice ma dovrebbe darvi il concetto.

10

per garantire la vostra 'alert' nella vista mostra solo quando si intende (un reindirizzamento da metodo ThankYou) e non quando qualcuno naviga accidentalmente Per visualizzare il 'ThankYou'

//redirect to thankyou page 
public ActionResult Thankyou() 
{ 
    TempData["alertMessage"] = "Whatever you want to alert the user with"; 
    return View(); 
} 

Poi, nel tuo " "Vedi, questo:

Questo scriverà lo script come faresti normalmente per qualsiasi JavaScript. Spero che questo ti aiuti!

3

Sembra che si desideri visualizzare la finestra di messaggio "grazie" nella vista in cui l'utente immette i dati di registrazione?

Se questo è il caso, è necessario AJAX POST per un'azione, quindi gestire il messaggio di successo/errore che viene restituito dall'azione nel proprio lato client javascript.

Una cosa da tenere a mente se si esegue questa operazione è che non si desidera che i propri utenti facciano clic più volte sul pulsante "Invia" per poterlo nascondere o disattivare dopo il primo clic e mostrare/abilitarlo su un errore di convalida ...

5

in uso del controller di questo codice

public ActionResult Edit(CoverLetterModel model) 
{ 
    TempData["msg"] = "<script>alert('Change succesfully');</script>"; 
} 

in considerazione l'uso di questo codice

@Html.Raw(TempData["msg"]) 
+0

un modo semplice per aggiungere uno script nella propria pagina di visualizzazione – vicky

Problemi correlati