Tengo una aplicación llena de páginas y controles de usuario, muchos de los cuales tienen uno o más controles de etiqueta para mostrar varios mensajes diferentes al usuario.¿Recomendaciones para una buena forma de mostrar mensajes de usuario en asp.net?
Ejemplo: el control de usuario AddCompany.ascx, normalmente usado en la página Company.aspx (con App.Master MasterPage) tiene una etiqueta en que llamó "OutOfCreditLabel" con Text = "Error: No se puede crear un nuevo compañía, ya que está sin crédito ". El código verifica el crédito y muestra la etiqueta si es necesario.
quiero para deshacerse de todas estas etiquetas por todo el lugar y sólo tiene un método que pueda llamar desde cualquier lugar como
ShowUserMessage("Text goes here");
En proyectos anteriores He implementado esto como una sola etiqueta en el maestro página y método público en los .master.cs - siempre y cuando la página tiene la línea
<%@ MasterType VirtualPath="~/App.master" %>
en ella, esto funciona - pero no puedo conseguir que funcione en controles de usuario (.ascx.cs) . Hay un truco para esto?
O ... ¿Hay una manera mejor?
¿Qué recomendarías para un método de mensaje de usuario "global" que funciona desde cualquier parte del sitio?
¿Alguna buena solución jQuery, tal vez?
actualización
RPM1984 ha pedido más aclaraciones, por lo que estoy tratando de hacer esta otra manera:
Necesito un método que pueda llamar desde el código subyacente (de una página o un control de usuario) que luego mostrará el texto que especifique para el usuario, por ejemplo, cómo stackoverflow le informa sobre nuevas respuestas a su pregunta la próxima vez que visite el sitio. Puede estar en la parte superior de la ventana (como SO) o en algún lugar de la página, no importa. Lo que importa es que se trata de un enfoque "global", en lugar de tener varias alertas de javascript y etiquetas asp: desparramadas sobre cada otra página y el control del usuario en el proyecto.
Algo parecido a este escenario:
Un usuario hace clic en el botón "Crear widget" en mi control de usuario "gestor de widgets" en mi página. En el controlador de eventos es:
if (User.IsOutOfCredit)
{
ShowUserMessage("Sorry, you cannot create widgets; you are out of credit.");
}
Esto se traduce en que el usuario vea "Lo siento, no se puede crear widgets, que están fuera de crédito." Ya sea en un texto emergente o rojo en la página en algún lugar o en la parte superior como StackOverflow, todo está bien
¿Eso tiene sentido?
Gracias, este es un enfoque interesante, pero parece que esto solo pondrá algo de texto en la página (todo el tiempo). Necesito algo que pueda usar con una declaración "if" en el código subyacente; si se cumplen ciertas condiciones, enseño el mensaje. Esto no funcionará para mí, ¿o sí? – MGOwen
Ok, estoy un poco confundido en cuanto a lo que estás tratando de hacer. para ShowUserMessage ("El texto va aquí"); ¿Qué es "el texto va aquí" y cuál es el resultado esperado de ShowUserMessage? – RPM1984
OK, aclaración agregada a la pregunta. – MGOwen