-Aplicación web ASP.NET 4.7-
Mantengo algunas notificaciones en la sesión para mostrar al usuario. Quiero eliminar la variable de sesión al hacer clic en el botón.
La idea es asegurarse de que el usuario reciba una notificación, de modo que mientras el usuario no presione el botón "Entendido", no eliminaré las notificaciones de la sesión para que cada vez que los usuarios vuelvan a cargar la página vean el misma ventana de notificación.
Tengo un botón en un modal de la siguiente manera:
<button type="button" class="btn btn-secondary" onclick="clearSession()" data-dismiss="modal">Got it</button>
Y este es el método que se supone que debe llamarse al hacer clic en el botón:
<script type="text/javascript"> function clearSession() { @{Session.Remove("WhatsNewList");} }; </script>
El problema es que la siguiente parte del código se precompila y se ejecuta aunque no se haga clic en el botón.
@{Session.Remove("Notifications");}
Quiero saber cuál es la razón de esto y si hay alguna manera de evitarlo.
Sé que puedo llamar a un método C# usando Ajax o jQuery, pero quiero saber si hay alguna manera de hacerlo también de esta manera.
¡Gracias por adelantado!
Al rodear una expresión con @{ }, la expresión se evaluará en el lado del servidor antes de que la página se cargue en el navegador, lo que significa que el código se ejecutará tan pronto como se solicite la página. Entonces, la respuesta corta es que no puede hacer lo que está tratando de hacer con este enfoque.