C# ASP.NET Web API中的控制器操作未到达
我有一个使用ADO.NET框架的OData web api,在这个api中,控制器的动作不知何故无法达到 API正确地接收HTTP请求并对其进行解析以转到正确的操作,但未到达该操作 作为回报,chrome浏览器显示身份验证窗口 我已经调试了很长时间,但不知道如何解决这个问题 控制器为(剥离版本):C# ASP.NET Web API中的控制器操作未到达,c#,.net,asp.net-mvc,visual-studio,odata,C#,.net,Asp.net Mvc,Visual Studio,Odata,我有一个使用ADO.NET框架的OData web api,在这个api中,控制器的动作不知何故无法达到 API正确地接收HTTP请求并对其进行解析以转到正确的操作,但未到达该操作 作为回报,chrome浏览器显示身份验证窗口 我已经调试了很长时间,但不知道如何解决这个问题 控制器为(剥离版本): 公共类数据控制器:ODataController { 私有只读数据模型DataAccessModel=新数据模型(); 公共数据控制器() { ....... } [HttpGet,EnableQu
公共类数据控制器:ODataController
{
私有只读数据模型DataAccessModel=新数据模型();
公共数据控制器()
{
.......
}
[HttpGet,EnableQuery]
公共IQueryable GetRecord(ODataQueryOptions选项)
{
尝试
{
可预测的结果;
尝试
{
结果=DataAccessModel.Records;
}
捕获(例外情况除外)
{
......
}
}
}
}
能否显示控制器是如何在WebApiConfig类中注册的
如果您使用的是ODataConventionModelBuilder,则必须遵循实体集控制器的某些命名约定
e、 g.如果我注册了航空公司类型的航空公司实体集
builder.EntitySet<Airline>("Airlines");
builder.EntitySet(“航空公司”);
..那么默认情况下/约定我需要实现
public class AirlinesController : ODataController<Airline>
{
[EnableQuery]
public IQueryable<Airline> Get()
{
DB db = Request.GetContext();
return db.Airlines();
}
}
公共级航线控制器:ODataController
{
[启用查询]
公共IQueryable Get()
{
DB=Request.GetContext();
return db.Airlines();
}
}
在启动时,您的项目中是否有Windows Auth设置。Auth类?尝试在方法顶部添加[AllowAnonymous]。[HttpGet]
属性是否自动将任何函数映射到OData GET函数?如果没有,请尝试使用public IQueryable-Get(ODataQueryOptions选项)
而不是public IQueryable-GetRecord(ODataQueryOptions选项)
。如果您提供WebApiConfig
,也会很好。
public class AirlinesController : ODataController<Airline>
{
[EnableQuery]
public IQueryable<Airline> Get()
{
DB db = Request.GetContext();
return db.Airlines();
}
}