【发布时间】:2016-09-04 23:30:44
【问题描述】:
我和Defining two get function in WebAPI有类似的问题
我创建了一个 ODataController ,除了参数的数据类型之外,它有两个签名相同的 get 方法。
一种方法以Id为键,返回语言对象。
第二种方法获取字符串名称并返回语言对象。
[EnableQuery]
public SingleResult<Language> GetLanguage([FromODataUri] int key)
{
return SingleResult.Create(_LanguageService.GetById_Queryable(key));
}
[EnableQuery]
public SingleResult<Language> GetLanguage([FromODataUri] string lname)
{
return SingleResult.Create(_LanguageService.GetByName(lname));
}
结果:
第一种方法:http://localhost/RoomReservationSystem_Api/odata/Languages(1)
{
"@odata.context":"http://localhost/RoomReservationSystem_Api/odata/$metadata#Languages/$entity","Name":"Urdu","Enabled":true,"Id":1
}
第二种方法:http://localhost/RoomReservationSystem_Api/odata/Languages(%22Urdu%22)
找不到资源。
描述:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下 URL 并确保其拼写正确。
【问题讨论】:
-
你能告诉我们BuildFunctions方法吗?
-
我没有在 Build Function 中为这个方法添加任何定义。
标签: c# asp.net-web-api odata