Je veux retourner le modèle (données) d'un contrôleur dans différents formats (JavaScript / XML / JSON / HTML) à l'aide d'Actionfilter. Voici où je suis à ce jour:
L'actionFilter: p> et la mise en œuvre de sa qualité: p> La méthode code> OnResultXecuting est appelée, mais je ne reçois pas le modèle (données) renvoyé et formaté comme objet JSON. Mon contrôleur fait simplement que la vue.
3 Réponses :
Avez-vous essayé: avec un type de retour de JSONRESUT sur l'action du contrôleur? P> P>
IRESULTFILTER.EnResulterSulting Retours Void. Et la classe JSON n'est pas disponible dans ce contexte.
Avez-vous essayé d'implémenter votre code de filtrage dans la méthode code> OnactionExecuted code>, au lieu de OnResultexecuting code>? Il est possible qu'au moment de la cuisson de ce dernier, il est trop tard pour changer le résultat (la sémantique étant », ok, nous avons le résultat en main et ce crochet est le feu juste avant ce résultat ici n'est exécuté"), mais Je n'ai pas le temps d'aller vérifier la source MVC pour être sûr. P>
C'était ce que je cherchais:
public class ResultFormatAttribute : ActionFilterAttribute, IActionFilter { void IActionFilter.OnActionExecuted(ActionExecutedContext context) { context.Result = new JsonResult { Data = ((ViewResult)context.Result).ViewData.Model }; } }