如何解决如何使用简单Odata客户端查询FileStreamResult
我正在尝试使用简单的odata客户端从odata asp.net核心Web API获取流。我的odata函数控制器永远不会被调用。有提示吗?
模型配置:
var GetMyModelCsvConf = builder.EntityType<MyModel>().Collection.Function("GetMyModelCsv").Returns<FileStreamResult>();
GetMyModelCsvConf.Parameter<Guid>("MyId");
GetMyModelCsvCsvConf.Parameter<string>("Culture");
控制器:
[HttpGet]
[Produces("application/octet-stream")]
[ProducesResponseType(typeof(ODataValue<FileStreamResult>),Status200OK)]
[ProducesResponseType(Status404NotFound)]
[EnableQuery(AllowedQueryOptions = None)]
public async Task<IActionResult> GetMyModelCsv(Guid MyId,string Culture)
{
var Results = _Query.Get(x=>x.MyId == MyId);
using (MemoryStream ms = new MemoryStream())
{
using (TextWriter tw = new StreamWriter(ms))
using (CsvWriter csv = new CsvWriter(tw,new System.Globalization.CultureInfo(Culture)))
{
csv.WriteRecords<MyModel>(Results);
}
return File(ms,"application/octet-stream");
}
}
请求
var CsvFile = await _ODataApiService.ODataClient
.For<MyModel>("MyModels")
.Function("GetMyModelCsv")
.Set(new
{
MyId = MyId,Culture = System.Globalization.CultureInfo.CurrentCulture.Name
}).Media().GetStreamAsArrayAsync();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。