Aplicación web ASP.Net.

¿Es posible acceder a una función de JavaScript ubicada en la página maestra desde una función de clase C #?

A continuación se muestra una descripción de lo que intento hacer ...

Cuando el usuario hace clic en el botón Guardar, se llama al procedimiento de base de datos que devuelve un valor que indica si fue exitoso. Este valor se introduce en una función C # que se encuentra en un archivo de clase C #. Esta función determina si el guardado fue exitoso y tiene dos rutas:

Ruta exitosa: Almacene "Guardar con éxito" en la variable de sesión. Llame a la función JavaScript que muestra momentáneamente el mensaje almacenado en la variable de sesión.

Ruta de falla: invierta todos los cambios realizados con este número de transacción. Almacenar "Guardar no tuvo éxito" en la variable de sesión. Llame a la función de JavaScript para mostrar el mensaje almacenado en la variable de sesión.

Me gustaría usar JavaScript para mostrar el mensaje, ya que tengo la capacidad de hacerlo de manera ordenada y sin requerir que el usuario haga clic en un botón.

¡Gracias por tu ayuda! :)

2
G8Tech 23 sep. 2011 a las 19:47

3 respuestas

La mejor respuesta

Usa Ajax. Realice una llamada con JavaScript a un PageMethod de ASP.Net y haga que el valor de retorno sea la respuesta de cadena ("Éxito" / "Error"). Aquí hay un artículo que lo ayudará a lograr esto:

Llamando a PageMethods con jQuery

¡Buena suerte!

2
Trevor 23 sep. 2011 a las 16:45

En general, no. No digo que sea imposible, pero esta no es la forma normal.

Dejame explicar. El código C # se ejecuta en el servidor y se usa para ensamblar la página y los scripts que se entregarán al navegador. El navegador ejecuta el javascript. (El navegador contiene un motor de tiempo de ejecución de JavaScript para lograr esto).

Puede llamar al código C # desde javascript, pero solo si el código C # está expuesto a través de un servicio web. (Piense [Método web]).

El servidor normalmente no tiene un motor de tiempo de ejecución de JavaScript para usar al crear una página.

Creo que para su caso, el camino más fácil hacia una solución sería mostrar el mensaje directamente usando el código C #.

0
Matt Brunell 23 sep. 2011 a las 16:38

Puedes inyectar JavaScript.

http://msdn.microsoft.com/en-us/library/aa478975.aspx

0
Daniel A. White 23 sep. 2011 a las 15:49