web-dev-qa-db-fra.com

Comment ma classe Asp.Net C # peut-elle retourner un format json?

Comment voudrait une classe qui retournera un format JSON.

Cette méthode fonctionne très bien dans le contrôleur , Mais lorsque je veux mettre dans une classe, l’objet Json ne semble pas exister.

 public JsonResult Test()
 {
      //Error   1   The name 'Json' does not exist in the current context   C:\inetpub\wwwroot\mvcinfosite\mvcinfosite\Validation\ValidationClass\BaseValidator.cs  66  20  mvcinfosite
      return Json(new { errMsg = "test" });
 }

Je veux mettre ce code dans une classe simple. Je veux pouvoir appeler cette méthode dans beaucoup de contrôleurs.

Merci.

MODIFIER 
Ceci est ma classe (Où le code ne fonctionne pas)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using mvcinfosite.Models;
using mvcinfosite.Base;
using System.Web.Mvc;

public class BaseValidator
{
     public JsonResult Test()
     {
         return Json(new { errMsg = "test" });
     }
}
15
Jean-Francois

Json() est une méthode sur le contrôleur de base qui renvoie un JsonResult. Vous devez faire la sérialisation vous-même.

return new JavaScriptSerializer().Serialize(new { errMsg = "test" });

Vous devrez inclure using System.Web.Script.Serialization.

21
Ryan

return Json(new { errMsg = "test"}); 

est une méthode pratique sur Controller équivalente à 

return new JsonResult(){
      Data = new { errMsg = "test"},
      JsonRequestBehavior = JsonRequestBehavior.DenyGet
};
22
jbtule

Pour moi cela a fonctionné (attention au changement du type de retour en Object):

public Object Test()
{
      return new { errMsg = "test" };
}
0
A-S