我为这样的GeminiTickets定义了一个函数:
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");
在GeminiTicketsController中......
public async Task<IHttpActionResult> GetNewTickets([FromODataUri] List<int> projectIds, DateTime? startDate = null, DateTime? endDate = null) {...};
当我想使用所有参数访问此函数时,一切都很好: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3],startDate=2016-06-10,endDate=2016-06-22)
但是,如果我尝试发送例如,我根本不发送任何参数只有projectIds,IIS给了我500个内部错误: http://example.com/odata/GeminiTickets/Service.GetNewTickets(projectIds=[1,2,3])
我发现我们可以将参数设置为可选:
geminiTicketsParam.Parameter<DateTime?>("startDate").OptionalParameter = true;
但它什么都不做。有什么想法吗?
谢谢!
答案 0 :(得分:2)
OptionalParameter表示它可以为null,您可以尝试使用
startDate=null,endDate=null