简体   繁体   中英

How can My Asp.Net C# class return a json format

How would like a class that will return a json format.

This method work Great in the controller but when I want to put in a Class, the Json object don't seem to exist.

 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" });
 }

I want to put that code in a simple class. I want be able to call this method in many controllers.

Thanks.

EDIT
This is my Class (Where the code dosen't work)

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" });
     }
}

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

is a convenience method on Controller that is equivalent to

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

Json() is a method on the base controller which returns a JsonResult. You need to do the serialization yourself.

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

You will need to include using System.Web.Script.Serialization .

For me this worked (mind the change of the return type to Object):

public Object Test()
{
      return new { errMsg = "test" };
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM