我有以下控制器:
Public Class Savedata
Public Property ID As Integer
Public Property Name As String
End Class
我有以下模型:
{{1}}
作为测试,我希望能够调用此API,并为其传递一个JOE值,并使该API返回joe。
首先我尝试
但这给了我这个错误:
找不到与请求URI'http://localhost:12976/api/guest?a=JOE'相匹配的HTTP资源。 在控制器“访客”上未找到与请求匹配的操作。
然后,我发现需要将url参数命名为与在ApiController函数中定义的参数相同的名称。因此,我第二次尝试发送此邮件:
但这给了我这个错误:
请求的资源不支持http方法“ GET”。
所以现在我很困惑,因为我根本没有指定http方法。
想法?有建议吗?
谢谢。
答案 0 :(得分:0)
默认情况下,如果从浏览器发出请求,除非另有说明,否则该请求将是GET请求
但是由于操作的名称未遵循默认的命名约定(例如具有 Get 前缀),所以框架无法推断该操作接受哪个HTTP动词。
在操作上使用HttpGet
属性,以使框架知道该操作接受HTTP GET请求
Public Class GuestController
Inherits ApiController
<HttpGet()> _
Public Function SaveValue(<FromUri> ByVal passedName As String) As Savedata
'Get guest data from database
Dim guestResult As New Savedata
guestResult.Name = passedName.ToLower()
Return guestResult
End Function
End Class