2 votes

comment modifier un résultat json avant de le renvoyer au client ?

Mon contrôleur renvoie un JsonResult comme ça :

return Json(model);

Comment puis-je modifier les données json à la volée avant qu'elles ne soient renvoyées au client. J'aimerais ajouter des attributs de validation à mon modèle pour obtenir quelque chose comme :

{"Label": "Test", 
  "ValidationRules":[{"data-val-required":"This field is required.", "data-val-length-max":25, "data-val-length":"Max 25 chars." }]}

UPDATE

public class Product
{
  [Required]
   String Label {get; set;}
}

Lors de l'appel de Json(model) avec model étant une instance de Product, j'aimerais modifier la chaîne json avant qu'elle ne soit retournée, afin qu'elle inclue les attributs de validation.

1voto

Tom Miller Points 421

Pourquoi ne pas créer une classe de base appelée ValidatableBase qui possède une propriété ValidationRules :

public class Product : ValidatableBase
{
    public string Label { get; set; }
}

public abstract class ValidatableBase
{
    public ValidatableBase()
    {
        this.ValidationRules = new Dictionary<string, string>();
    }
    public Dictionary<string, string> ValidationRules { get; set; }
}

public ActionResult GetProduct()
{
    var product = new Product();
    product.Label = "foo";
    product.ValidationRules.Add("data-val-required", "this field is required");

    return Json(product);
}

Hériter de cette classe et sérialiser.

Ou si vous utilisez les DataAnnotations, pourquoi ne pas utiliser les méthodes par défaut de validation jQuery et HtmlHelper fournies par ASP.NET MVC ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X