Lo stile di vita del controller dovrebbe essere sempre transitorio nella configurazione di Windsor per ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/1792283

Domanda

Ho riscontrato un problema in cui a mio avviso avevo un Html.DropDownList che postbackava il valore selezionato la prima volta che inviavo il modulo, ma ogni postback successivo pubblicava solo i dati dal postback iniziale.Quindi ho aggiunto lifestyle="transient" all'elemento componente in cui avevo configurato il mio controller per Castle Windsor, il che ha risolto il problema, ma ovviamente i postback richiedevano più tempo poiché veniva istanziato un nuovo controller per richiesta.Date le informazioni di cui sopra, quali informazioni, suggerimenti o soluzioni potrebbero aiutare a determinare la mia domanda iniziale sullo stile di vita del controller?Grazie per tutto l'aiuto e il supporto!

È stato utile?

Soluzione

controller MVC sono transitori. A pensarci bene, questo ha un senso per alcuni motivi. In primo luogo, se una singola istanza viene utilizzata per servire più richieste e se le richieste multiple capita di colpire lo stesso controller, allo stesso tempo, si sta andando a sperimentare alcune condizioni di gara piuttosto bizzarre. Secondo, HTTP è per sua natura stateless, e richieste esistono indipendentemente l'uno dall'altro. Ciò si riflette nello stile di vita transitorio di controllori.

Altri suggerimenti

Transient, sì, ma per l'amor di interesse, perché non PerWebRequest anziché transitoria? Ho visto un paio di blog che utilizzano PerWebRequest stile di vita e non riesco a pensare a una ragione per cui non. Tutte le risposte?

Sono d'accordo con Dion.Sono atterrato qui alla ricerca di una soluzione a questa stessa domanda.Sembra che PerWebRequest è più appropriato.

A seconda di come integri il tuo contenitore in MVC e WebApi, potresti non istruire Windsor a rilasciare le dipendenze quando il controller non viene più utilizzato.

Se lo imposti su PerWebRequest, lo farà rilascia automaticamente il controller e tutte le sue dipendenze al termine della richiesta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top