c# - ASP.Net Web API 2 方法未显示正确数据但行数正确

标签 c# asp.net asp.net-mvc asp.net-web-api2

我在 Repository 类中编写了一个方法,并在 Web API 项目中为其创建了一个 Controller。 以下是我的模型类:

namespace Meijer.Merch.Space.Data
{
    public class FloorplanAnalyst
    {
        public int EmpId { get; set; }

        public string EmpName { get; set; }
    }
}

Repository类中的方法如下:

public IEnumerable<FloorplanAnalyst> GetFloorplanAnalyst()
        {
            return this.Database.SqlQuery<FloorplanAnalyst>("GET_FLOORPLAN_ANALYSTS").ToList();
        }

以下是我的 Controller 方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace SpaceWebApi.Controllers
{
    /// <summary>
    /// Controller used for the retrieving of FloorplanAnalyst information
    /// </summary>
    public class FloorplanAnalystController : ApiController
    {
        private ISpaceRepository db = new SpaceRepository();

        /// <summary>
        /// Returns a list of FloorplanAnalysts.        
        public IEnumerable<FloorplanAnalyst> GetFloorplanAnalyst()
        {
            return db.GetFloorplanAnalyst();
        }
    }
}

但我得到以下记录作为我的结果(返回 27 行):

    {
        "EmpId": 0,
        "EmpName": null
      },
      {
        "EmpId": 0,
        "EmpName": null
      }
}

在 SQL Server 中,执行存储过程时会返回正确的数据。但是在 Web API 端它是不正确的。

最佳答案

您遇到此问题是因为 FloorplanAnalyst 类中的 EmpIdEmpName 属性与您的 GET_FLOORPLAN_ANALYSTS 返回的列名称不匹配 存储过程。

要解决此问题,请确保每个属性在存储过程的结果查询中都有关联的列名(与属性同名)。

关于c# - ASP.Net Web API 2 方法未显示正确数据但行数正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308656/

相关文章:

c# - 标志属性是必需的吗?

c# - 如何让 HttpWebRequest 尽可能同步运行?

asp.net - 服务器端asp.net上的angularjs渲染

c# - ASP.NET MVC 上的 Rotativa HTML 转 PDF : how to create PDF as a landscape?

javascript - 将 arraybuffer 从 angularjs 发送到 C# 端点

c# - 如何从 .NET 客户端应用程序加载 URL

c# - 学习设计模式的资源

c# - 如何改变 C# 中数字的文化?

asp.net - ReturnUrl 并保留滚动位置?

asp.net-mvc - MVC4 中域名的 URL 重写