我有ASP.NET Web API

它以这样的方式返回给我JSON

[{"CompanyID":1,"CompanyName":"Тест"},{"CompanyID":5,"CompanyName":"Фокстрот"}]

据我所知,这是Json数组,但我需要返回Json对象,而不是它

像这样:{"results":[{"CompanyID":1,"CompanyName":"Тест"},{"CompanyID":5,"CompanyName":"Фокстрот"}]}

这是我的GetCompanys控制器:

public class GetCompaniesController : ApiController
{
    private ApplicationDbContext db = new ApplicationDbContext();

    // GET: api/GetCompanies
    public IQueryable<Companies> GetCompanies()
    {
        return db.Companies;
    }

    // GET: api/GetCompanies/5
    [ResponseType(typeof(Companies))]
    public async Task<IHttpActionResult> GetCompanies(int id)
    {
        Companies companies = await db.Companies.FindAsync(id);
        if (companies == null)
        {
            return NotFound();
        }

        return Ok(companies);
    }

    // PUT: api/GetCompanies/5
    [ResponseType(typeof(void))]
    public async Task<IHttpActionResult> PutCompanies(int id, Companies companies)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        if (id != companies.CompanyID)
        {
            return BadRequest();
        }

        db.Entry(companies).State = EntityState.Modified;

        try
        {
            await db.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!CompaniesExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return StatusCode(HttpStatusCode.NoContent);
    }

    // POST: api/GetCompanies
    [ResponseType(typeof(Companies))]
    public async Task<IHttpActionResult> PostCompanies(Companies companies)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.Companies.Add(companies);
        await db.SaveChangesAsync();

        return CreatedAtRoute("DefaultApi", new { id = companies.CompanyID }, companies);
    }

    // DELETE: api/GetCompanies/5
    [ResponseType(typeof(Companies))]
    public async Task<IHttpActionResult> DeleteCompanies(int id)
    {
        Companies companies = await db.Companies.FindAsync(id);
        if (companies == null)
        {
            return NotFound();
        }

        db.Companies.Remove(companies);
        await db.SaveChangesAsync();

        return Ok(companies);
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            db.Dispose();
        }
        base.Dispose(disposing);
    }

    private bool CompaniesExists(int id)
    {
        return db.Companies.Count(e => e.CompanyID == id) > 0;
    }
}

我需要如何修改我的控制器?

谢谢

推荐答案

返回值时,请try 以下操作:

public IHttpActionResult GetCompanies()
{
    var companies = db.Companies.ToList();
    return Ok( new { results = companies });
}

Asp.net相关问答推荐

设置主键时KeyAttribute属性不起作用

如何从 JavaScript 调用 C# 函数?

Firefox 和 Chrome 之间 1 像素的行高差

ReportViewer 控件 - 高度问题

/应用程序中的服务器错误. ASP.NET

将 ASP.NET 成员资格表添加到我自己的现有数据库中,还是应该配置一个单独的 ASP.NET 成员资格数据库?

在 appSettings 中存储字符串数组?

如何缓存数据库表以防止在 Asp.net C# mvc 中出现许多数据库查询

如何使用文件上传控件 Select 多个文件?

使用 JSON.NET 解析 json 字符串

.NET 核心 IdentityUser 模型中规范化邮箱和用户名的用途是什么?

'Microsoft.ACE.OLEDB.12.0' 提供程序未在本地计算机上注册.

在 ASP.NET Core 1.0 上处理大文件上传

如何设置asp.net身份cookie过期时间

Ef core:执行 MaxAsync 时序列不包含任何元素

如何使用 asp.net 获取 html Select 的选定值

根据 DropDownList 的值动态启用或禁用RequiredFieldValidator

IIS Express 安装目录在哪里?

ASP.NET 身份,需要强密码

在 ASPNET 标识 2.0 中禁用用户