2011-06-24 49 views
8

Estoy usando un controlador que está insertando valores en la base de datos. Quiero mostrar un mensaje de alerta desde el controlador cuando los valores se insertaron en la base de datos con éxito. ¿Es posible? Si es así, ¿entonces cómo?cómo mostrar el mensaje de alerta en el controlador

+0

¿Qué quiere decir por alerta? como en la alerta del navegador de JavaScript ('helo world'); tipo de alerta? – melaos

+1

sí, como alert ('Insertado correctamente'); – Saloni

+0

¿puedes publicar tu código actual en el controlador? ¿Y cómo publicar datos en el controlador? ¿Está usando jquery post? –

Respuesta

3

Básicamente eso depende de cómo está insertando el valor en la base de datos, ya que necesitaría un método para indicarle si la inserción fue exitosa. Como hay algunas formas de hacerlo ahora, linq/entity framework/sql/etc.

Luego, después de saber si sucedió la inserción, puede simplemente asignar un valor a una variable y luego desde el código/aspx simplemente verificar el valor y hacer una alerta simple.

<script type="text/javascript"> 
//i'm using jquery ready event which will call the javascript chunk after the page has completed loading 
$(document).ready(function(){ 
//assuming that your variable name from the code behind is bInsertSuccess 
var bSuccess = "<%= bInsertSuccess %>"; 
if(bSuccess){ 
    alert("Successfully Inserted"); 
} 
}); 
</script> 
0

Puede añadir a continuación el código de usuario para contar

Return Content("Data added successfully"); 
18

Puede añadir el resultado a ViewData. Por ejemplo:

if (SaveToDbOK) 
{ 
    ViewData["Success"] = "Data was saved successfully."; 
    // Do other things or return view 
} 

En su vista en la que se puede colocar en cualquier lugar:

MVC2:

 
<% if (ViewData["Success"] != null) { %> 
    <div id="successMessage"> 
     <%: ViewData["Success"] %> 
    </div> 
<% } %> 

MVC3:

 
@if (ViewData["Success"] != null) { 
    <div id="successMessage"> 
     @ViewData["Success"] 
    </div> 
@} 

he utilizado este enfoque en mi último proyecto con el fin para hacer que la información devuelta desde el servidor sea discreta. Comprobando si ViewData ["Success"] o ViewData ["Failure"] se hacen en la página Master, los divs se formatean usando CSS, el código jQuery se usó para ocultar las notificaciones después de 5 segundos.

Saludos,

Huske

5
public ActionResult UploadPropertyImage() 
{ 
    // Business logic.... 
    return Content("<script language='javascript' type='text/javascript'>alert('Save Successfully');</script>"); 
} 
+1

Al agregar js en el contenido de la vista desde el Controlador que rompe la encapsulación, la vista debe estar lista para recibir la alerta. La respuesta de Melaos respeta la encapsulación – Four

+0

Pero eso es más una preferencia personal, es decir, sí, debe seguir el patrón de diseño pero en algunos casos simplemente complica demasiado una tarea trivial. En mi caso, por ejemplo, solo tengo que hacer esto en un solo lugar, y no utilizamos JavaScript en nuestras vistas, por lo que para mi caso, esta solución es exactamente lo que quiero, una forma rápida de enviar una copia de seguridad. alerta. –

Cuestiones relacionadas