سؤال

لقد قمت بإنشاء ActionFilter جديد لتطبيق ASP.NET MVC الذي أخلقه. لدي إجراء يقبل منشور HTTP ووسيطة طريقة الإجراءات يقبل كائن، الذي قمت بإنشائه وتسجيل موثق نموذج مخصص.

لقد لاحظت ذلك داخل IActionFilter.OnActionExecuting القيمة ل filterContext.Controller.ViewData.Model دائما null على الرغم من حقيقة أنه يبدو وكأنه Binder النموذجي يتم الاحتجاج دائما قبل مرشح الحركة OnActionExecuting طريقة. على النقيض من ذلك داخل IActionFilter.OnActionExecuted طريقة نفس الإجراء تصفية القيمة filterContext.Controller.ViewData.Model هو ليس لاشيء.

هل تعرف يا رفاق ما إذا كان هذا حسب التصميم أو خطأ؟ إذا كان ذلك من خلال التصميم له أي روابط تصف لماذا هذا؟ شكرًا.

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

المحلول

نظرا لأن إجراء وحدة التحكم مسؤولة عن إنشاء النموذج ويمره إلى عرض كيفية وجود النموذج قبل أن يتم استدعاء الإجراء؟ أنت لا تعرف ما هو النموذج الذي سيتم إنشاؤه حتى بعد حدوثه.

نصائح أخرى

سيد، عادة ما تحدد نموذجا أثناء تنفيذ إجراء. لذلك، من الطبيعي أن يكون النموذج فارغا أثناء تنفيذ actionExecuting الذي يحدث قبل استدعاء الإجراء.

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