Sto sviluppando un'applicazione ASP.NET MVC, che ha un sacco di interazione lato client ie. un sacco di chiamate Ajax alle azioni del controllore.
Attualmente ho controller che contengono azioni (parte dello stesso controller) che restituiscono sia viste che dati (json / xml), sto considerando che è una buona pratica avere azioni che restituiscono dati e viste sotto un unico controller.
Ad esempio sotto
/Controllers/CarsController/
public ActionView Index()
public ActionView Car(int carID)
public ActionResult CarMakes()
public ActionResult CarModels(int makeID)
/Controllers/StoresController
public ActionView Index()
public ActionView Store(int storeID)
public ActionResult Cities()
public ActionResult Stores()
Questo è un modo di pensare e l'altro sarebbe
/Controllers/CarsController/
public ActionView Index()
public ActionView Car(int carID)
/Controllers/StoresController
public ActionView Index()
public ActionView Store(int storeID)
/Controllers/ServicesController
public ActionResult CarMakes()
public ActionResult CarModels(int makeID)
public ActionResult Cities()
public ActionResult Stores()
Il secondo modo offre un modo più semplice per trovare tutte le azioni disponibili che potrebbero essere utilizzate per l'interazione lato client. Le azioni evitano la duplicazione, potrebbero anche essere riutilizzate e richiamate da diversi controller (possono essere chiamati e riutilizzati in entrambi i modi)
Quindi tra questi due vorrei solo sapere che cosa è una pratica generale durante la progettazione dell'applicazione MVC?