Me confunden la lógica de aplicación/dominio y la lógica de la interfaz de usuario. Para ilustrar lo que estoy tratando de definir, describiré un programa imaginario a continuación con fines ilustrativos:Confusión entre lógica de vista y lógica de dominio en una aplicación web ASP.NET MVC
(1) Imagine una aplicación pequeña con un conjunto de 3 menús desplegables en cascada. Al seleccionar un menú desplegable, se activa un JQuery Ajax GET que termina golpeando un controlador MVC, proporcionando el valor seleccionado del menú desplegable previamente seleccionado. El controlador devuelve las opciones permitidas para el siguiente menú desplegable. El javacript (en la vista) organiza estos resultados en un menú desplegable. y así. Por lo tanto, cada vez que selecciona un menú desplegable, el siguiente se llena.
(2) Ahora tirando una llave ... Hay algunas excepciones. Digamos que si el usuario selecciona "FOO" o "BAR" en el primer menú desplegable, entonces el comportamiento cambia, por lo que el segundo menú desplegable se desactiva, y el menú desplegable muestra un cuadro de texto en su lugar.
Mi pregunta es, en el contexto de MVC, ¿cuál es el lugar apropiado para esta lógica de "decisión"? Como el código que es responsable de tomar estas decisiones, como expliqué en (2). El lugar más conveniente que he estado poniendo esto fue justo en el javascript de la vista. Simplemente escribí javascript para probar si el primer cuadro es "FOO" o "BAR", luego desactivo el segundo dropwdown y cambio el tercer menú desplegable para un cuadro de texto. Pero esto no me parece correcto. Porque parece que debería ser una lógica comercial, por lo tanto, el código debería pertenecer a una capa de dominio en algún lugar. Pero eso tampoco se siente del todo bien.
Y siento que voy en círculos. ¿Puede alguien arrojar algo de luz sobre este pequeño diseño?
Dios, cómo me molesta esta pregunta en mi tiempo de inactividad. – Merritt