我在我的Web Forms項目中使用Web API。我在我的項目的Application_Start
方法下面的代碼在Global.asax中:Web API在控制器的Web Forms項目中查找的位置?
GlobalConfiguration.Configuration.Routes.MapHttpRoute("ApiDefault", "api/{controller}/{id}", New With {.id = RouteParameter.Optional})
這基本上是複製和關於這一主題的微軟教程貼。
我也有一個名爲ValuesController
的測試控制器。這個類就是默認的Web API控制器創建從添加新項嚮導控制器當一個人得到,並命名爲Controllers
在我的Web窗體網站的文件夾中:
Imports System.Net
Imports System.Web.Http
Public Class ValuesController
Inherits ApiController
' GET api/<controller>
Public Function GetValues() As IEnumerable(Of String)
Return New String() {"value1", "value2"}
End Function
' GET api/<controller>/5
Public Function GetValue(ByVal id As Integer) As String
Return "value"
End Function
' POST api/<controller>
Public Sub PostValue(<FromBody()> ByVal value As String)
End Sub
' PUT api/<controller>/5
Public Sub PutValue(ByVal id As Integer, <FromBody()> ByVal value As String)
End Sub
' DELETE api/<controller>/5
Public Sub DeleteValue(ByVal id As Integer)
End Sub
End Class
無論其 - 當我去http://localhost/api/Values
- 而不是看到一些XML序列化的字符串value1
和value2
的,我看到一個錯誤信息,像這樣:
<Error>
<Message>No HTTP resource was found that matches the request URI 'http://localhost/api/Values'.</Message>
<MessageDetail>No type was found that matches the controller named 'Values'.</MessageDetail>
</Error>
所以 - 顯然,路由工作,因爲不是得到一個404,我得到一個消息,說的路線本身沒有按不解決任何事情。但路線應該解決一些問題 - 具體來說,我的ValuesController
班甚至在名爲Controllers
的文件夾中。
任何人都知道我在做什麼錯了?
在此先感謝。
你的其他路線工作嗎? – CAbbott
是的,其他路線似乎正在工作。 – benjy