-2

私は次のコントローラー/アクションを持っています:

public class SomeThingController
{
     IEnumerable<SomeThing> Search(DateTime minDate, DateTime maxDate, bool summaryOnly = true){}
}

summaryOnlyパラメーターを指定する必要はありませんが、minDateとmaxDateを指定する必要があります。

誰かが上記のルートを提供できますか?

4

1 に答える 1

3

次のルートを試すことができます。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "Search",
            routeTemplate: "api/search/{minDate}/{maxDate}/{summaryOnly}",
            defaults: new { 
                summaryOnly = RouteParameter.Optional,  
                controller = "SomeThing", 
                action = "search" 
            }
        );

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

その後:

public class SomeThingController : ApiController
{
    [HttpGet]
    public IEnumerable<SomeThing> Search(DateTime minDate, DateTime maxDate, bool summaryOnly = true)
    {
        ...
    }
}

そして、このエンドポイントを次のようにリクエストできます。

/api/search/2013-02-08/2013-02-10/

また:

/api/search/2013-02-08/2013-02-10/false
于 2013-02-07T13:04:48.133 に答える