2012-03-10 76 views
8

He creado la aplicación mvc una vez que se ha completado el registro, me redirigen a la página de agradecimiento.¿Cómo usar el cuadro de mensaje en el controlador MVC?

pero en vez de eso quiero mostrar el mensaje emergente entonces ¿cómo puedo hacer esto? mi código:

[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(); 
     } 

Respuesta

4

@Reynolds

Tu respuesta es perfecta.

En la maquinilla de afeitar, la siguiente línea puede ser reemplazado

alert("@TempData[alertMessage]"); 

por la siguiente

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

PS. Observe las comillas

+1

La respuesta es simple. No funcionó para mí, así que sabía que se debía a citas. Una vez que arreglé las cotizaciones, funcionó. –

+1

Somos desarrolladores y lo más importante, la lógica funcionó, por lo que la respuesta me pareció genuina. Acabo de corregirlo para asegurarme de que alguien que está aprendiendo MVC no se quede atascado. No entiendo lo que quieres probar.Si quieres que te diga que eres un genio, entonces que así sea. Gracias genio por señalar el error. –

1

En la web se tendrá que utilizar Javascript para visualizar un cuadro de mensaje. La sintaxis (Para ir en su vista está en su forma más simple)

Alert("Hello There!"); 

No se puede llamar a esto directamente desde el controlador. Simplemente coloque el código anterior en su vista ThankYou.

Esto es muy simple, pero debería darle el concepto.

10

para asegurar que su 'alerta' en su opinión sólo se muestra cuando se desea (una redirección desde su método de ThankYou) y no cuando alguien navega por accidente a la vista 'ThankYou'

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

Luego, en su " ThankYou "ver, esto:

if(null != TempData["alertMessage"]) 
    { 
     <script type="text/javascript"> 
     alert("@TempData[alertMessage]"); 
     </script> 
    } 

Esto escribirá la secuencia de comandos como lo haría normalmente con cualquier JavaScript. ¡Espero que esto ayude!

3

Parece que es posible que desee mostrar el cuadro de mensaje "gracias" en la vista donde el usuario ingresa los datos de registro?

Si este es el caso, necesita AJAX POST para una acción, luego maneje el mensaje de éxito/error que devuelve la acción en su lado del cliente javascript.

Una cosa a tener en cuenta es que no desea que sus usuarios hagan clic en el botón "enviar" varias veces, por lo que es posible que desee ocultarlo o deshabilitarlo después del primer clic y mostrarlo/habilitarlo en un error de validación ...

5

en uso controlador de este código

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

en vista utilización de este código

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

manera simple de agregar script en su página de vista – vicky

Cuestiones relacionadas