هل يجب أن يكون نمط حياة وحدة التحكم دائمًا عابرًا في تكوين Windsor لـ ASP.NET MVC؟

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

سؤال

واجهت مشكلة حيث كان لدي html.dropdownlist في رأيي والتي من شأنها أن تنشر القيمة المحددة في المرة الأولى التي قدمت فيها النموذج ، لكن كل Postback اللاحقة ستنشر فقط البيانات من Postback الأولي. لذلك أضفت نمط الحياة = "عابرة" إلى عنصر المكون حيث قمت بتكوين وحدة التحكم الخاصة بي لـ Castle Windsor ، والتي حددت المشكلة ، ولكن بالطبع ، استغرق الأمر وقتًا أطول منذ أن تم إنشاء جهاز تحكم جديد لكل طلب. بالنظر إلى المعلومات المذكورة أعلاه ، ما هي البصيرة أو الاقتراحات أو الحلول التي قد تساعد في تحديد سؤالي الأصلي حول نمط حياة وحدة التحكم؟ شكرا على كل المساعدة والدعم!

هل كانت مفيدة؟

المحلول

وحدات تحكم MVC عابرة. التفكير في الأمر ، هذا منطقي لعدة أسباب. أولاً ، إذا تم استخدام مثيل واحد لخدمة طلبات متعددة ، وإذا حدثت طلبات متعددة لضرب وحدة التحكم نفسها في نفس الوقت ، فسوف تواجه بعض ظروف السباق الغريبة إلى حد ما. ثانياً ، HTTP بطبيعته عديمة الجنسية ، والطلبات موجودة بشكل مستقل عن بعضها البعض. وينعكس هذا في نمط الحياة العابر من وحدات التحكم.

نصائح أخرى

عابرة ، نعم ، ولكن من أجل الاهتمام ، لماذا لا perwebrequest بدلاً من عابرة؟ لقد رأيت بعض المدونات التي تستخدم نمط حياة PerWebRequest ولا يمكنني التفكير في سبب لا. أي إجابات؟

وأنا أتفق مع ديون. هبطت هنا بحثًا عن حل لهذا السؤال نفسه. انها تبدو مثل PerWebRequest أكثر ملاءمة.

اعتمادًا على كيفية دمج الحاوية الخاصة بك في MVC و WebAPI ، قد لا تكون توجيه Windsor لإصدار تبعيات عندما لا يتم استخدام وحدة التحكم الخاصة بك بعد الآن.

إذا قمت بتعيينه على PerWebRequest, ، سوف قم بإطلاق وحدة التحكم الخاصة بك تلقائيًا ، وجميع تبعياتها عند انتهاء الطلب

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top