我試圖做一個途徑,但它不是在這種情況下工作:屬性路由 - 枚舉不分析
如果我稱之爲:
http://mysite.com/api/v1/product/Generic/1A
工作正常。
如果我稱之爲:
http://mysite.com/api/v1/product?=Generic
工作過,但是當我打電話:
http://mysite.com/api/v1/product/Generic
我得到這個錯誤:
{
"Message":"The request is invalid.",
"MessageDetail":"The parameters dictionary contains a null entry for parameter 'type'
of non-nullable type 'GType' for method 'System.Net.Http.HttpResponseMessage
Get(GType)' in 'MySite.ControllersApi.V2.ProductController'. An optional parameter must
be a reference type, a nullable type, or be declared as an optional parameter."
}
我的路由的代碼:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute
(
name: "DefaultApi",
routeTemplate: "api/{version}/{controller}/{type}/{id}",
defaults: new { id = RouteParameter.Optional, version = "v1", controller = "Product" }
)
}
}
public enum GType
{
Big,
Small,
Generic,
}
和控制器:
public HttpResponseMessage Get(GType type)
{
...
}
public HttpResponseMessage Get(GType type, string id)
{
...
}
所以,網頁API不解析URL中的價值。我忘記了什麼嗎?
你發佈的內容沒有意義。沒有辦法,你的第一個網址將與給定的路線一起工作。你能清理樣品嗎? –
我修正了這個例子。 –
你的電話仍然沒有任何意義。您的路線中有'api'和'{version}',因此您的通話應以http://mysite.com/api/v1/ ... –