I define a function for GeminiTickets like this:
var geminiTickets = builder.EntitySet<GeminiTicket>("GeminiTickets");
var geminiTicketsParam = geminiTickets.EntityType.Collection
.Function("GetNewTickets")
.Returns<ReportDataVM>();
geminiTicketsParam.CollectionParameter<int>("projectIds");
geminiTicketsParam.Parameter<DateTime?>("startDate");
geminiTicketsParam.Parameter<DateTime?>("endDate");
in GeminiTicketsController...
public async Task<IHttpActionResult> GetNewTickets([FromODataUri] List<int> projectIds, DateTime? startDate = null, DateTime? endDate = null) {...};
When I want to access this function with all parameters, everything is fine: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3],startDate=2016-06-10,endDate=2016-06-22)
But if I send no parameter at all of if I try to send eg only projectIds, IIS gives me a 500 Internal Error: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3])
I found that we can set a parameter to be optional:
geminiTicketsParam.Parameter<DateTime?>("startDate").OptionalParameter = true;
But it's doing nothing. Any idea ?
Thank you!
OptionalParameter表示它可以为null,可以尝试
startDate=null,endDate=null
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.