問題

如何為路由中參數(shù)設置默認值。


解決方案

不管使用屬性路由還是集中式路由,ASP.NET WEB API 都可以很方便的為路由定義默認參數(shù)。在每次客戶端請求的時候,如果客戶端沒有傳這些參數(shù),框架會自動給他們賦值。


對于集中式路由,MapHttpRoute 擴展方法接收默認值使用的是第三個參數(shù) IDictionary 的形式(也是一個匿名類)。Key(或者匿名對象的屬性)必須與路由模板中參數(shù)名稱一致。

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new {id = VALUE}
    );


在屬性路由中,直接在屬性聲明中定義默認值。

[Route("items/{id:int=VALUE}")] public HttpResponseMessage Get(
        		

網(wǎng)友評論