问题描述
我正在尝试使用简单的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 (将#修改为@)