Cannot implicitly convert Web.Http.Results.JsonRes

2020-08-26 03:33发布

I've set up this test method on a controller to strip out any complication to it. Based off of all the results I've found from searching this should work. I'm not sure what I'm missing here.

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

This is the error I get.

Cannot implicitly convert type 'System.Web.Http.Results.JsonResult' to 'System.Web.Mvc.JsonResult'

6条回答
SAY GOODBYE
2楼-- · 2020-08-26 03:35

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 });
}
查看更多
Rolldiameter
3楼-- · 2020-08-26 03:37

Try

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

查看更多
聊天终结者
4楼-- · 2020-08-26 03:40

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?

查看更多
ら.Afraid
5楼-- · 2020-08-26 03:42

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 });
}
查看更多
混吃等死
6楼-- · 2020-08-26 03:47

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);
        }
查看更多
我命由我不由天
7楼-- · 2020-08-26 03:57

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;
    }
查看更多
登录 后发表回答