Cannot implicitly convert Web.Http.Results.JsonResult to Web.Mvc.JsonResult

倖福魔咒の 提交于 2019-12-05 06:49:08

you should return a JsonResult instead of just Json

 public JsonResult test() 
    {
        var result = new JsonResult();
        result.Data = new
        {
             id = 1
         };
        result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
        return result;
    }

Try the following:

public System.Web.Http.Results.JsonResult test() 
{
    return Json(new { id = 1 });
}

It seems that Json does not generate a System.Web.Mvc.JsonResult which is expected as you are probably using System.Web.Mvc; but a System.Web.Http.Results.JsonResult.
The more generic one should also work:

public ActionResult test() 
{
    return Json(new { id = 1 });
}

NOTE:
In my MVC controllers the Json method does return a System.Web.Mvc.JsonResult. Are you inheriting from the default System.Web.Mvc.Controller?

Try

return Json(new { id = 1 }, JsonRequestBehavior.AllowGet);

In MVC JsonResult is inherited from ActionResult which is in namespace System.Web.Mvc

thats why you should make the Reference to System.Web.Mvc.JsonResult as::

public System.Web.Mvc.JsonResult test() 
{
    return Json(new { id = 1 });
}
irtaza

You need to return the data through a model class rather than an anonymous class. Like:

public System.Web.Http.Results.JsonResult<modelClass> test(){
        return Json(new modelClass(){ id=1 });
}

Put this in your Using:

using System.Web.Http.Results;

Then Your Action:

public JsonResult<YourClass> Get(string Search)
        {
           var Search = Search
           return Json(Search);
        }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!