c# - MVC C# API - 使用列表属性返回 RootObject 而不仅仅是返回列表
问题描述
我正在向我的 MVC 应用程序添加一个 API 控制器以重新调整 JSON 数据
在我的应用程序中,我有一个名为 Album 的类:
public class Album
{
public int Id { get; set; }
public string AlbumName { get; set; }
public int YearReleased { get; set; }
public string AlbumInfo { get; set; }
public string imgAlbumCover { get; set; }
}
我的数据库包含几个专辑对象的表
我创建了一个 API 控制器来以 Json 格式返回这个专辑列表。
我将以下代码添加到 WebApiConfig.cs 以获取 JSON 而不是 XML:
using System.Net.Http.Headers;
GlobalConfiguration.Configuration.Formatters
.JsonFormatter.MediaTypeMappings.Add
(new System.Net.Http.Formatting.RequestHeaderMapping("Accept",
"text/html",
StringComparison.InvariantCultureIgnoreCase,
true,
"application/json"));
当我在浏览器中调用相册 API 时,返回的是 JSON 格式的相册对象列表。
而不是返回专辑列表,我想重新调整一个具有 1 个名为专辑的属性的 RootObject,其中专辑是专辑对象的列表。有没有办法在控制器中做到这一点?我不想创建一个新的 RootObject 类。
下面是我的 API 控制器的代码:
namespace Music.Controllers.API
{
public class AlbumsController : ApiController
{
private MusicContext db;
public AlbumsController()
{
db = new MusicContext();
}
public IEnumerable<Album> GetAlbums()
{
return (db.Albums.ToList());
}
}
}
解决方案
然后像这样创建一个视图模型并返回相同的
public class AlbumListResponseModel
{
public IEnumerable<Album> Albums { get; set; }
}
public async Task<IActionResult> GetAlbums()
{
AlbumListResponseModel model = new AlbumListResponseModel
{
Albums = db.Albums;
}
return OK(model);
}
如果您正在使用,请WEB API 2.0
考虑使用IActionResult
而不是
推荐阅读
- javascript - 点数被错误计算
- javascript - 提交表单并使用 target='_top' 留在同一页面上
- c# - c# - 查找没有根元素的节点值
- html - 尝试使用 AngularJS 将编辑后的图像保存到我的本地计算机
- angular - Angular 2+ 条件通配符重定向
- mysql - MySQL:如何使用 ONLY COUNT() 和不使用 WHERE 子句获取 24 小时内发生的事件计数
- sqlcmd - 如何从 sql server pdw 中的 bat 文件中获取用户输入?
- python - 谁能举一个小例子来解释 tf.random.categorical 的参数?
- c# - 使用 c# 控制台实现数组的链表
- javascript - 获取随机不重复的颜色