鉴于我从教程中获取的以下简单Web API(不是MVC项目的一部分,只是一个空的ASP.NET站点):
Public Class AwesomeController
Inherits ApiController
Public Function [Get]() As String
Return "Hello. The time is " & DateTime.Now.ToString
End Function
Public Function Post(<FromBody> yourName As String) As String
Return String.Format("Hi {0}, you posted here at {1}", yourName, DateTime.Now.ToString)
End Function
End Class
我在global.asax中创建了这样的路径:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
GlobalConfiguration.Configuration.Routes.Add("default", New HttpRoute("{controller}"))
End Sub
这很好用,但我读过WebAPI路由应该最好使用MapHttpRoute创建,这样服务就可以独立存在。这是真的?
如果是这样,任何人都可以发布代码来替换我的global.asax版本吗?
更新
我想到了最后一点,但是仍然会知道是否有'正确'的方式?
RouteTable.Routes.MapHttpRoute("default", "{controller}")
答案 0 :(得分:2)
MapHttpRoute
扩展方法只是在路由表中注册HttpRoute
实例的便捷方式。不过,在不使用速记方法的情况下手动创建和注册HttpRoute
是完全可以的。
如果您想了解MapHttpRoute
的内部工作原理,请查看源代码:HttpRouteCollectionExtensions.cs。