Cómo evitar que las devoluciones repetidas confundan mi capa empresarial

Tengo una aplicación web (ASP.Net 3.5) con un diseño convencional de 3 capas. Si el usuario hace clic en un botón, se produce una devolución de datos, se ejecuta un código intermedio y de capa de datos, y la pantalla se actualiza. Si el usuario hace clic en el botón varias veces antes de que se complete la primera devolución, mi lógica se confunde y la aplicación puede terminar en un estado no válido. ¿Cuáles son las mejores formas de prevenir esto?

Puedo usar JavaScript para deshabilitar el botón, pero esto solo oculta el problema. ¿Cómo construyo mi negocio y las capas de datos para manejar esto?

Respuestas a la pregunta(7)

Su respuesta a la pregunta