Как мой класс Asp.Net С# возвращает json-формат
Как хотел бы класс, который вернет json-формат.
Этот метод работает Отлично в контроллере
но когда я хочу поставить класс, объект Json, похоже, не существует.
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" });
}
Я хочу поставить этот код в простой класс. Я хочу иметь возможность вызвать этот метод во многих контроллерах.
Спасибо.
РЕДАКТИРОВАТЬ
Это мой класс (где код не работает)
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" });
}
}
Ответы
Ответ 1
Json()
- это метод на базовом контроллере, который возвращает JsonResult. Вам нужно сделать сериализацию самостоятельно.
return new JavaScriptSerializer().Serialize(new { errMsg = "test" });
Вам нужно будет включить using System.Web.Script.Serialization
.
Ответ 2
return Json(new { errMsg = "test"});
- метод удобства на контроллере, эквивалентный
return new JsonResult(){
Data = new { errMsg = "test"},
JsonRequestBehavior = JsonRequestBehavior.DenyGet
};
Ответ 3
Для меня это сработало (помните об изменении типа возврата для Object):
public Object Test()
{
return new { errMsg = "test" };
}