我跟着this了解ODataController是如何工作的,一切都还可以,但是当我改变请求的时候uri
来自
"localhost:49292/odata/Employees" //result: 200
到
"localhost:49292/odata/employees" //result: 404
说一句话:" odata"或" Odata"和"员工"一切都好,但小写"员工"返回404.对此有任何解释。此外,asp.net mvc中的路由不区分大小写。
答案 0 :(得分:2)
如何包含Route属性并将其指向小写。对于大写的web api将关注它
[Route("odata/employees")]
将其添加到控制器顶部
如果odata对于每个操作都很常见,那么您可以包含[RoutePrefix]
属性
答案 1 :(得分:1)
您可以使用ODataModelBuilder而不是ODataConventionModelBuilder手动执行此操作
e.g
var builder = new ODataModelBuilder();
builder.EntitySet<Order>("Employees");
builder.EntitySet<Order>("employees");
这将有效,但您的元数据将显示2个实体集:
{
@odata.context: "http://localhost:62881/$metadata",
value: [
{
name: "Employees",
kind: "EntitySet",
url: "Employees"
},
{
name: "employees",
kind: "EntitySet",
url: "employees"
}
]
}
答案 2 :(得分:-1)
小写&#34; 员工&#34;返回404。
我希望你可能没有这样的拼写错误。
AFAIK,过滤器和属性存在案例限制。 (您可以在那里投票https://aspnetwebstack.codeplex.com/workitem/366)但不确定控制器名称..
您可以使用web api创建REST服务器,而无需使用oData ..