在Visual Studio中使用OData服务出错406错误

时间:2015-04-30 07:15:35

标签: c# asp.net-mvc web asp.net-web-api odata

我试图找出为什么我的odata服务无效但无济于事。我一直收到406错误,我尝试了所有推荐的解决方案无济于事。以下是我的代码。

public class Person
{
    public int Id { get; set; }
}

public class TestController : ODataController
{

[EnableQuery]
public IQueryable<Person> GetTest()
{
        try
        {
            var persons = new List<Person>(){new Person{ Id= 1}};
            return persons.AsQueryable();
        }
        catch (Exception ex)
        {
            var here = "dd";
        }
        return null;
    }

在我的webapiconfig课程中,我有:

        // Web API routes
        config.MapHttpAttributeRoutes();         

        var builder = new ODataConventionModelBuilder();
                 builder.EntitySet<Person>("Person"); 
        config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

它因406错误而失败。它命中我的控制器中的断点,但不返回数据。

1 个答案:

答案 0 :(得分:0)

我弄明白了这个问题。我使用config.MapODataServiceRoute(...代替config.Routes.MapODataServiceRoute...我一改变它,并且使用了正确的语句,一切都开始有效。