在Asp.net core 5和Odata v8中,当控制器未返回Odata类型时,会导致将数据返回为原始类型,而不是正确的Odata格式。解决此问题的一种方法是在控制器的返回类型中指定Odata格式。
以下是一个示例控制器,它返回包含一些人员信息的Odata实体集合:
using Microsoft.AspNet.OData;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
public class PersonController : ODataController {
[EnableQuery]
public IEnumerable Get() {
List people = new List();
// populate list here
return people.AsQueryable();
}
}
public class Person {
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
在此示例中,控制器将“IEnumerable
如果您仍然遇到问题,请确保正确添加了Odata中间件并正确配置了您的应用程序选项。