Domanda

Sto scrivendo un componente che vorrei poter utilizzare in entrambe le app Web MVC e WebForms, ma non sono sicuro di come gestire le differenze tra le modalità di gestione di HttpContext.

Il mio componente prevede un IHttpHandler personalizzato (per WebForms) o un ActionResult personalizzato (per MVC).

Quindi ho alcune domande:

  • Esiste un modo per utilizzare un IHttpHandler con MVC senza rompere il modello?
  • È accettabile utilizzare HttpContext.Current mentre si tenta di scrivere codice che funzionerà per entrambi? Mi sembra un po 'bruta-forza-ish (non so perché), ma l'alternativa sarebbe scrivere e implementare un'interfaccia abbastanza dettagliata per gestire l'astrazione tra HttpContext e ControllerContext.
  • Sto sbagliando completamente?
È stato utile?

Soluzione

  1. Sì, puoi semplicemente utilizzare route.IgnoreRoute (" MyHandler.ashx ") . Tornerà alla gestione ASP.NET originale senza interrompere il modello.
  2. No, penso che sia perfettamente OK usare HttpContext.Current . Penso che quando scrivi il tuo gestore, MVC non è molto applicabile. Stai scrivendo il tuo codice per ASP.NET , non ASP.NET MVC o ASP.NET Web Form. È facile farlo funzionare su entrambi i modelli (funziona OOTB con moduli Web, con IgnoreRoute in MVC). Potresti rendere le cose più complicate di quanto dovrebbero essere! Ricorda, l'unico scopo dei modelli di progettazione (come MVC) è la semplicità. Non complicare le cose!
  3. goto 2; Basta scrivere un semplice gestore!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top