不能隐式地将Web.Http.Results.JsonResult转换为Web.Mvc.JsonResult
本文关键字:JsonResult Web 转换 Mvc Results Http 不能 | 更新日期: 2023-09-27 18:06:55
我在控制器上设置了这个测试方法,以消除它的任何复杂性。根据我从搜索中发现的所有结果,这应该是可行的。我不知道我错过了什么。
public JsonResult test()
{
return Json(new { id = 1 });
}
这是我得到的错误。
不能隐式转换类型"System.Web.Http.Results"。JsonResult'到'System.Web.Mvc.JsonResult'
你应该返回一个JsonResult而不仅仅是Json
public JsonResult test()
{
var result = new JsonResult();
result.Data = new
{
id = 1
};
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
尝试如下:
public System.Web.Http.Results.JsonResult test()
{
return Json(new { id = 1 });
}
似乎Json
不会产生System.Web.Mvc.JsonResult
,这是预期的,因为您可能是using System.Web.Mvc;
,而是System.Web.Http.Results.JsonResult
。
更通用的也应该可以使用:
public ActionResult test()
{
return Json(new { id = 1 });
}
注意:
在我的MVC控制器的Json
方法确实返回一个System.Web.Mvc.JsonResult
。是否从默认的System.Web.Mvc.Controller
继承?
Try
return Json(new { id = 1 }, JsonRequestBehavior.AllowGet);
您需要通过模型类而不是匿名类返回数据。如:
public System.Web.Http.Results.JsonResult<modelClass> test(){
return Json(new modelClass(){ id=1 });
}
在MVC中JsonResult
继承自ActionResult
,这是在命名空间System.Web.Mvc
这就是为什么你应该把System.Web.Mvc.JsonResult
的引用设置为::
public System.Web.Mvc.JsonResult test()
{
return Json(new { id = 1 });
}
把这个放到你的Using中:
using System.Web.Http.Results;
Then Your Action:
public JsonResult<YourClass> Get(string Search)
{
var Search = Search
return Json(Search);
}