开发者

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

开发者 https://www.devze.com 2023-02-16 22:08 出处:网络
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.

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 con开发者_StackOverflowtext   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" };
}
0

精彩评论

暂无评论...
验证码 换一张
取 消