8

次のような get メソッドを持つ Web API コントローラー (TasksController) があります。

public IEnumerable<TimeUnitModel> Get(DateTime startDate, DateTime endDate, string projectCode = "")

私が電話したら

/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15

正しい結果が返されます。

私が電話したら

/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15&projectCode=

それから私は得る:

{"projectCode.String":"A value is required but was not present in the request."}

なぜこれが起こるのですか?ありがとう。

編集: ルート構成にあるものは次のとおりです。

config.Routes.MapHttpRoute(
            name: "tasks_get",
            routeTemplate: "api/tasks",
            defaults: new { controller = "tasks", projectCode = RouteParameter.Optional}
        );
4

1 に答える 1