Pregunta

Entonces me estoy embarcando en un ASP.NET MVC proyecto y aunque la experiencia ha sido buena en general, no estoy tan satisfecho con el desastre en el que se han convertido mis controladores.He buscado en línea (CodeCampServer, etc.) y todos parecen sufrir el mismo problema en el que los métodos de controlador violan SRP (principio de responsabilidad única) de manera bastante consistente, como un método de controlador que simplemente muestra la vista si la solicitud es a GET pero actualiza el model si es un POST.Ahora tengo métodos de controlador responsables de múltiples rutas lógicas en toda la aplicación; digamos que verifica cuáles button Se hizo clic en el formulario y actúa en consecuencia.Podría redirigir cada clic en un botón a una acción de formulario diferente usando JavaScript, pero algo tampoco parece estar bien allí...El otro gran problema es la proliferación de la magia. strings - ViewData["foo"] = blah; En pocas palabras, ¿cómo están ustedes? structure su controller ¿lógica?¿Un objeto modelo gigante por vista?muchos pequeños controller methods y JavaScript es el enrutador?Mi objetivo es un código mantenible: a medida que se acumulan funciones, empiezo a deslizarme por esa pendiente resbaladiza...

¿Fue útil?

Solución

Vista previa de ASP.NET 5 (disponible en CódigoPlex) tiene una respuesta para esto:el atributo [AcceptVerbs].Phil Haack tiene un entrada en el blog discusión sobre cómo se usa.

En cuanto a la pregunta clave mágica sobre la visualización de datos, es un problema interesante.Si piensa que una vista es un conjunto de componentes semiindependientes (especialmente a la luz del nuevo soporte de vista parcial), entonces crear un modelo fuertemente tipado se vuelve menos ideal, ya que las distintas partes de la vista deberían ser relativamente independientes de unos y otros.

Otros consejos

¿Cómo están manejando este problema las diferentes personas?Sé que acabo de pasar un par de horas revisando el revoltijo dentro de la carpeta del modelo.Creo que crear carpetas es útil para reducir el desorden visual, y usar espacios de nombres coincidentes también ayuda mucho.

Pero mis controladores son monolitos por el momento.El problema es que me he centrado en aprender hasta este punto del proyecto (todavía hay mucho que resolver también).

Ahora estoy dominando bien MVC, por lo que es hora de revisar la complejidad y considerar modificar los controladores para que tengan funciones más limpias y con mejor nombre.

¿Otras personas están dividiendo sus controladores en subcontroladores?(Si existe tal cosa)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top