È buona norma accedere ai metodi di un controller da un altro in MVC?

2

Ho alcuni metodi definiti in un controller che molti di loro restituiscono JsonResult , e alcuni restituiscono PartialViews.

Quindi ho due domande,

1) È buona norma accedere a quei metodi che restituiscono JsonResult dagli altri controller?

2) È buona norma accedere a quei metodi che restituiscono ActionResult dagli altri controllori?

Grazie:)

    
posta Shanid 01.06.2016 - 09:26
fonte

1 risposta

3

Non è una questione di buono e cattivo. A volte è solo necessario. I modi più comuni sono:

  1. Definisci buone interfacce tra i controller che devono comunicare e consentire ai controllori di scambiare informazioni direttamente: questo sembra il tuo approccio dato che un controller fornisce metodi per recuperare i jsons dall'esterno. Non è sbagliato, ma preferisco il secondo approccio perché porta a una maggiore modularità.
  2. Scollega i metodi necessari da entrambi i controller e inseriscili in una classe separata che fungerà da middleware. In questo modo i due controllori comunicano attraverso questa terza classe. Gli svantaggi di questa soluzione sono che quando il tuo controller ha JSON o ActionResult devi ricordarti di aggiornare la nuova classe in modo che altri controllori possano accedere alle informazioni: forzare un programmatore a "ricordare" per aggiornare la nuova classe che puoi codificare interfaccia implementata dai controller con metodi come void jsonWrite(Json jsn) e Json jsonRead() .

Spero che questo aiuti

    
risposta data 01.06.2016 - 10:09
fonte

Leggi altre domande sui tag