Учитывая следующий простой Web API (не является частью проекта MVC, просто пустой сайт ASP.NET), который я взял из учебника:MapHttpRoute против MapRoute для основного POST WebAPI
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?
Update
Я понял, последний немного, но все равно бы знать, есть ли «правильный» путь?
RouteTable.Routes.MapHttpRoute("default", "{controller}")
Спасибо за это. Будучи новичком в маршрутизации, я не вижу большого различия между этими двумя примерами. Вы говорите, что «MapHttpRoute» является сокращенным, но есть ли примеры, когда это действительно полезно по сравнению с оригинальным подходом? Была ли какая-либо другая причина, по которой «MapHttpRoute» был разработан только для экономии времени? – EvilDr
@EvilDr «MapHttpRoute» упрощает определение дополнительных параметров, таких как значения и ограничения маршрута по умолчанию, используя динамические типы (вместо 'HttpRouteValueDictionary' и т. Д.). Вам нужно будет использовать экземпляры «HttpRoute», если вы хотите указать настраиваемый специфический для маршрута «HttpMessageHandler» (см. Http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Http/Routing/HttpRoute. CS). –
Хорошо, спасибо, спасибо – EvilDr