在ASP.NET Core 2.0中工作的控制器:
[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class GraficResourcesApiController : ControllerBase
{
private readonly ApplicationDbContext _context;
public GraficResourcesApiController(ApplicationDbContext context)
{
_context = context;
}
[HttpGet]
public JsonResult GetGrafic(int ResourceId)
{
var sheduling = new List<Sheduling>();
var events = from e in _context.Grafic.Where(c=>c.ResourceId == ResourceId)
select new
{
id = e.Id,
title = e.Personals.Name,
start = e.DateStart,
end = e.DateStop,
color = e.Personals.Color,
personalId = e.PersonalId,
description = e.ClientName
};
var rows = events.ToArray();
return Json(rows);
}
}
在ASP.NET Core 2.1中
return Json (rows);
写道,Json在当前上下文中不存在。如果我们删除Json,就简单地离开
return rows;
然后写道,不可能将类型List()显式转换为JsonResult
如何立即转换为Json?
在asp.net-core-2.1 ControllerBase
中没有Json(Object)
方法。但是Controller
确实如此。
因此,要么将当前控制器重构为 Controller
public class GraficResourcesApiController : Controller {
//...
}
可以访问该Controller.Json
方法,或者您可以JsonResult
在操作中初始化一个新的自己
return new JsonResult(rows);
这基本上是该方法在内部执行的操作 Controller
/// <summary>
/// Creates a <see cref="JsonResult"/> object that serializes the specified <paramref name="data"/> object
/// to JSON.
/// </summary>
/// <param name="data">The object to serialize.</param>
/// <returns>The created <see cref="JsonResult"/> that serializes the specified <paramref name="data"/>
/// to JSON format for the response.</returns>
[NonAction]
public virtual JsonResult Json(object data)
{
return new JsonResult(data);
}
/// <summary>
/// Creates a <see cref="JsonResult"/> object that serializes the specified <paramref name="data"/> object
/// to JSON.
/// </summary>
/// <param name="data">The object to serialize.</param>
/// <param name="serializerSettings">The <see cref="JsonSerializerSettings"/> to be used by
/// the formatter.</param>
/// <returns>The created <see cref="JsonResult"/> that serializes the specified <paramref name="data"/>
/// as JSON format for the response.</returns>
/// <remarks>Callers should cache an instance of <see cref="JsonSerializerSettings"/> to avoid
/// recreating cached data with each call.</remarks>
[NonAction]
public virtual JsonResult Json(object data, JsonSerializerSettings serializerSettings)
{
if (serializerSettings == null)
{
throw new ArgumentNullException(nameof(serializerSettings));
}
return new JsonResult(data, serializerSettings);
}
资源
本文向大家介绍详解mvc使用JsonResult返回Json数据,包括了详解mvc使用JsonResult返回Json数据的使用技巧和注意事项,需要的朋友参考一下 controller 中定义以下方法: 页面调用: 以上是在mvc中使用,在webform中怎么使用呢? 在webform中要引用Newtonsoft.Json.dll; 当然你也可以自己拼接字符串。 页面方法: 显示结果: 以上就是本
是否有一种方法可以将catch{}以序列化为JSON对象的方式从catch{}返回错误消息?我考虑向myObject添加一个List属性,并在其中存储错误。有没有更好的办法做到这一点?
问题内容: 我的MVC控制器中有一个简单的方法: 这是一个区域对象: 这就是我从视图中调用方法的方式: 我已经检查了控制器中的方法,并创建了Area对象的列表。您有什么主意,为什么从视图中调用该方法时为什么会出现500内部服务器错误?当我返回其他任何内容(例如Dictionary对象)时,一切正常,只是当我打算将Areas列表转换为Json时,我得到一个错误。 问题答案: 由于类包含和包含的集合,
问题内容: 如果我有这样的控制器: 基本上,我从存储库中获取东西,然后将其投影到匿名类型中。 如何进行单元测试? 有一个名为的属性,但它的类型与我们预期的一样。 这是否意味着如果我想测试JSON对象是否具有我期望的属性(“ id”,“ name”,“ type”),我是否必须使用反射? 编辑: 这是我的测试: 但是我在循环中收到一个运行时错误,指出“对象不包含id的定义”。 当我将断点定义为匿名类
本文向大家介绍ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息,包括了ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息的使用技巧和注意事项,需要的朋友参考一下 一、如何用AJAX调用JsonResult方法 比如FuckController中添加有个返回JsonResult类型的方法FuckJson(): 如果我们直接在浏览器里调
问题内容: 我正在尝试在JavaScript中建立字符串数组,并在action方法的字符串列表中获取结果。以下是我的JavaScript的外观。我正在使用jQuery 1.4.2。问题是我在动作方法中的列表始终显示为NULL。JavaScript字符串数组会不会正确映射到C#中的字符串列表? 然后我的JsonResult如下所示: 问题答案: 更新到jQuery 1.4.2后,我遇到了同样的问题。