Ho un controller Web API (TasksController) con un metodo get come:Parametro opzionale WebApi - è richiesto?
public IEnumerable<TimeUnitModel> Get(DateTime startDate, DateTime endDate, string projectCode = "")
Se chiamo
/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15
il risultato corretto viene restituito.
Se chiamo
/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15&projectCode=
tanto sono:
{"projectCode.String":"A value is required but was not present in the request."}
Qualsiasi idea del perché questo accade? Grazie.
Edit: Ecco quello che ho nel config percorso:
config.Routes.MapHttpRoute(
name: "tasks_get",
routeTemplate: "api/tasks",
defaults: new { controller = "tasks", projectCode = RouteParameter.Optional}
);
Hai impostato UrlParameter.Optional in RouteConfig per il parametro projectCode? – dinukadev
Ho provato questo e non riesco a vedere quello che vedi. Ho persino rimosso il default dall'azione e tutto non ha alcun problema. – Aliostad
@sirrocco Ho visto un comportamento simile a questo prima, su questa domanda http://stackoverflow.com/questions/12006524/why-does-modelstate-isvalid-fail-for-my-apicontroller-method-that-has-nullable -p/12622152 # 12622152 –