7
我有一個Web API控制器(TasksController)與get方法,如:WebApi可選參數 - 是必需的嗎?
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}
);
有你在RouteConfig爲projectCode參數設置UrlParameter.Optional? – dinukadev
我想這並不能看到你所看到的。我甚至從操作中刪除了默認值,並且這一切都沒有問題。 – Aliostad
@sirrocco我見過類似的行爲之前,在這個問題上http://stackoverflow.com/questions/12006524/why-does-modelstate-isvalid-fail-for-my-apicontroller-method-that-has-nullable -p/12622152#12622152 –