Cuadro de mensaje de la aplicación web ASP.NET

En una aplicación asp.net windows forms, en el código C # detrás puedes usar:

MessageBox.Show("Here is my message"); 

¿Hay algún equivalente en una aplicación web asp.net? ¿Puedo llamar algo desde el código de C # detrás que mostrará un cuadro de mensaje para el usuario?

Ejemplo de uso de esto: tengo un botón que carga un archivo en el código detrás. Cuando se carga el archivo o si hay un error, me gustaría mostrarle un mensaje al usuario indicando el resultado.

Alguna idea sobre esto?

Quieres usar una alerta. Desafortunadamente no es tan bueno como con los formularios de Windows.

 ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + myStringVariable + "');", true); 

Similar a esta pregunta aquí: http://forums.asp.net/t/1461308.aspx/1

O crea un método como este en tu solución:

 public static class MessageBox { public static void Show(this Page Page, String Message) { Page.ClientScript.RegisterStartupScript( Page.GetType(), "MessageBox", "" ); } } 

Entonces puedes usarlo como:

 MessageBox.Show("Here is my message"); 

Solo por los registros.

Aquí hay un enlace de Microsoft que creo que es la mejor manera de presentar un MessageBox en ASP.Net

También presenta opciones como y NO .

Instrucciones sobre cómo obtener la clase del enlace trabajando en su proyecto:

  1. Si no tiene una carpeta App_Code en su proyecto, créela .
  2. Haga clic con el botón derecho en la carpeta App_Code y cree una clase. Llámalo MessageBox.cs
  3. Copie el texto del archivo MessageBox.cs ( del código adjunto ) y péguelo en su archivo MessageBox.cs .
  4. Haga lo mismo que los pasos 2 y 3 para el archivo MessageBoxCore.cs .
  5. Importante: haga clic con el botón derecho en cada archivo MessageBox.cs y MessageBoxCore.cs y asegúrese de que ‘Build Action’ esté configurado para Comstackr
  6. Agregue este código a su página aspx donde desea mostrar el cuadro de mensaje:

      
  7. Agregue este código en su página cs donde desea que se tome una decisión:

     string title = "My box title goes here"; string text = "Do you want to Update this record?"; MessageBox messageBox = new MessageBox(text, title, MessageBox.MessageBoxIcons.Question, MessageBox.MessageBoxButtons.YesOrNo, MessageBox.MessageBoxStyle.StyleA); messageBox.SuccessEvent.Add("YesModClick"); PopupBox.Text = messageBox.Show(this); 
  8. Agregue este método a su página cs . Esto es lo que se ejecutará cuando el usuario haga clic en Sí. No necesita hacer otro para el método NoClick .

     [WebMethod] public static string YesModClick(object sender, EventArgs e) { string strToRtn = ""; // The code that you want to execute when the user clicked yes goes here return strToRtn; } 
  9. Agregue un archivo WebUserControl1.ascx a su ruta raíz y agregue este código al archivo:

      
    //<-- Make sure you only have one ScriptManager on your aspx page. Remove the one on your aspx page if you already have one.
  10. Agregue esta línea en la parte superior de su página aspx :

     <%@ Register src="~/MessageBoxUserControl.ascx" tagname="MessageBoxUserControl" tagprefix="uc1" %> 
  11. Agregue esta línea dentro de su página aspx (dentro de su asp: etiqueta de contenido si tiene una)

      
  12. Guarde los archivos de imagen 1.jpg, 2.jpg, 3.jpg, 4.jpg del proyecto de Microsoft arriba en su ~/Images/ path.

  13. Hecho

Espero eso ayude.

Pablo

Hay varias opciones para crear un cuadro de mensaje del lado del cliente en ASP.NET; consulte aquí , aquí y aquí, por ejemplo …

realmente no. El código del lado del servidor está sucediendo en el servidor — puedes usar javascript para mostrar algo al usuario en el lado del cliente, pero obviamente solo se ejecutará en el lado del cliente. Esta es la naturaleza de una tecnología web de servidor cliente. Básicamente estás desconectado del servidor cuando recibes tu respuesta.

Por qué no se debe usar jquery popup para este propósito. Utilizo bpopup para este propósito. bpopup más sobre esto.
http://dinbror.dk/bpopup/

Hay algunas soluciones; Si se siente cómodo con CSS, aquí hay una solución muy flexible:

Cree un Panel un diseño adecuado que se asemeje a un “Cuadro de mensaje”, coloque una Label en él y establezca su propiedad Visible en false . Luego, cuando el usuario necesite ver un mensaje después de una devolución de datos (por ejemplo, presionando un botón), desde el código subyacente, establezca la propiedad Text Label en el mensaje de error deseado y establezca la propiedad Visible del Panel en true .

‘ASP.net MessageBox

‘Agregue un gestor de script a la página ASP.Net

  

tratar:

 { string sMsg = "My Message"; ScriptManager.RegisterStartupScript(Page, Page.GetType, Guid.NewGuid().ToString(), "alert('" + sMsg + "')", true); } 

Como ya han señalado otros, un cuadro de mensaje estará en el lado del cliente de Javascript. Entonces, el problema es cómo forzar un cuadro de mensaje JS del cliente desde el lado del servidor. Una solución simple es incluir esto en el HTML:

  

y para llenar esta data desde el lado del código del servidor detrás:

 public partial class PageName : Page { protected string JsData = "your message"; 

Tenga en cuenta que el valor de cadena debe ser una cadena de Javascript, es decir, ser un trazador de líneas, pero puede contener líneas de escape como \n .

Ahora puedes usar todas tus habilidades y trucos de Javascript o JQuery para hacer lo que desees con el texto del mensaje en el lado del cliente, como mostrar una alert() simple alert() , como se muestra en el ejemplo de código anterior, o un sofisticado cuadro de mensaje o mensaje.

(Tenga en cuenta que las ventanas emergentes a veces son desaprobadas y bloqueadas)

Tenga en cuenta también que, debido al protocolo HTTP, el mensaje solo se puede mostrar en respuesta a una solicitud HTTP que el usuario envía al servidor. A diferencia de las aplicaciones de WinForm, el servidor web no puede enviar un mensaje al cliente siempre que lo considere oportuno.

Si desea mostrar el mensaje solo una vez, y no después de que el usuario actualice la página con F5, puede configurar y leer una cookie con código JavaScript. En cualquier caso, lo bueno de este método es que es una manera fácil de obtener datos del servidor para el javascript en el cliente, y que puede usar todas las características de javascript para lograr lo que desee.

si incluirás

 System.Windows.forms 

como espacio de nombres, entonces entrará en conflicto. Utilizar

 btn_click() { System.Windows.Forms.MessageBox.Show("Hello"); } 

Necesita hacer referencia al espacio de nombres


 using System.Windows.Form; 

y luego agrega el código

 protected void Button1_Click(object sender, EventArgs e) { MessageBox.Show(" Hi...."); } 

Haga clic con el botón derecho en el explorador de soluciones y elija el cuadro de diálogo Agregar reference.one mostrará. En ese seleccione (.net)-> System.windows.form . Imports System.Windows.Forms (vb) y utilizando System.windows.forms(C#) copian esto en su encoding y luego escriben messagebox.show("") .

Solo agregue el espacio de nombres:

 System.Windows.forms 

a su referencia de aplicación web o lo que sea, y tiene acceso a su:

 MessageBox.Show("Here is my message"); 

Lo intenté y funcionó.

Buena suerte.