Question

Je suis tombé sur un problème où j'avais Html.DropDownList à mon avis qui postback la valeur sélectionnée la première fois que je soumettais la forme, mais chaque publication ultérieure que le post données du postback initial. Donc, j'ai ajouté le mode de vie = « transitoire » à l'élément constitutif où j'avais configuré mon contrôleur pour le château windsor, qui a résolu le problème, mais bien sûr fait postbacks prendre plus de temps depuis un nouveau contrôleur était instancié par demande. Compte tenu des informations ci-dessus, ce insight, suggestions ou solutions pourraient aider à déterminer ma première question au sujet du mode de vie du contrôleur? Merci pour toute l'aide et le soutien!

Était-ce utile?

La solution

contrôleurs MVC sont transitoires. En y repensant, cela a un sens pour quelques raisons. Tout d'abord, si une seule instance est utilisée pour desservir plusieurs demandes et si plusieurs demandes arrivent à frapper le même contrôleur en même temps, vous allez connaître des conditions de course assez bizarres. En second lieu, HTTP est par sa nature même sans état, et les demandes existent indépendamment les uns des autres. Ceci se reflète dans le mode de vie transitoire des contrôleurs.

Autres conseils

transitoire, oui, mais pour l'amour d'intérêt, pourquoi ne pas PerWebRequest au lieu de transitoire? Je l'ai vu deux ou trois blogs qui utilisent le mode de vie PerWebRequest et je ne peux pas penser à une raison pourquoi pas. Toutes les réponses?

Je suis d'accord avec Dion. Landed ici pour trouver une solution à cette même question. Il semble que PerWebRequest est plus approprié.

Selon la façon dont vous intégrez votre conteneur dans MVC et WebAPI, vous pourriez ne pas être instruisez Windsor pour libérer des dépendances lorsque votre contrôleur n'est pas utilisé plus.

Si vous définissez à PerWebRequest, il libérer automatiquement votre contrôleur, et toutes ses dépendances lorsque les extrémités de demande

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top