توافر النموذج داخل ActionFilter
-
20-09-2019 - |
سؤال
لقد قمت بإنشاء ActionFilter جديد لتطبيق ASP.NET MVC الذي أخلقه. لدي إجراء يقبل منشور HTTP ووسيطة طريقة الإجراءات يقبل كائن، الذي قمت بإنشائه وتسجيل موثق نموذج مخصص.
لقد لاحظت ذلك داخل IActionFilter.OnActionExecuting
القيمة ل filterContext.Controller.ViewData.Model
دائما null
على الرغم من حقيقة أنه يبدو وكأنه Binder النموذجي يتم الاحتجاج دائما قبل مرشح الحركة OnActionExecuting
طريقة. على النقيض من ذلك داخل IActionFilter.OnActionExecuted
طريقة نفس الإجراء تصفية القيمة filterContext.Controller.ViewData.Model
هو ليس لاشيء.
هل تعرف يا رفاق ما إذا كان هذا حسب التصميم أو خطأ؟ إذا كان ذلك من خلال التصميم له أي روابط تصف لماذا هذا؟ شكرًا.
المحلول
نظرا لأن إجراء وحدة التحكم مسؤولة عن إنشاء النموذج ويمره إلى عرض كيفية وجود النموذج قبل أن يتم استدعاء الإجراء؟ أنت لا تعرف ما هو النموذج الذي سيتم إنشاؤه حتى بعد حدوثه.
نصائح أخرى
سيد، عادة ما تحدد نموذجا أثناء تنفيذ إجراء. لذلك، من الطبيعي أن يكون النموذج فارغا أثناء تنفيذ actionExecuting الذي يحدث قبل استدعاء الإجراء.