la disponibilité du modèle à l'intérieur ActionFilter
-
20-09-2019 - |
Question
J'ai créé une nouvelle ActionFilter pour une application ASP.NET MVC que je crée. J'ai une action qui accepte un Http Post et l'argument de la méthode d'action accepte un objet, pour lequel je l'ai créé et enregistré un liant modèle personnalisé.
J'ai remarqué que l'intérieur de la IActionFilter.OnActionExecuting
la valeur pour filterContext.Controller.ViewData.Model
est toujours null
malgré le fait qu'il semble que le modèle de liaison est toujours invoqué avant que la méthode OnActionExecuting
du filtre d'action. Contrairement à ce à l'intérieur de la méthode de IActionFilter.OnActionExecuted
de la même action filtrer la valeur pour filterContext.Controller.ViewData.Model
est non nulle.
Avez-vous les gars savoir si cela est par la conception ou un bug? Si par la conception sont leurs tous les liens qui décrivent pourquoi est-ce? Merci.
La solution
Depuis l'action du contrôleur est responsable de la création du modèle et de la transmettre à la vue comment le modèle pourrait exister avant l'action appelée? Vous ne savez pas quel modèle va être créé qu'après il est arrivé.
Autres conseils
Sayed, vous définissez généralement un modèle lors de l'exécution d'une action. Par conséquent, il est naturel que le modèle est nulle lors de l'exécution de la OnActionExecuting qui se produit avant que l'action est appelée.