[英]How to add custom function to AbpODataEntityController?
在最近的一篇文章中 ,有一些關於如何向AbpODataEntityController
添加自定義函數的AbpODataEntityController
。 我試過但我無法達到我想要的效果。
例如,在我的AbpODataEntityController
,有兩個名為Test
和EchoTest
方法。
public class TownsController : AbpODataEntityController<Town>, ITransientDependency
{
public TownsController(IRepository<Town> repository) : base(repository)
{
}
// [HttpPost]
public string Test()
{
return "inanc";
}
// [HttpPost]
// [HttpGet]
public IActionResult EchoTest([FromODataUri] string param)
{
return Ok(string.Format("The param was {0}", param));
}
}
我的Startup.cs有:
builder.EntityType<Town>().Collection
.Function("Test")
.Returns<string>();
//.Parameter<string>("param");
builder.EntityType<Town>()//.Action("stringTest")
.Function("EchoTest")
.Returns<IActionResult>()
.Parameter<string>("param");
簡單的功能Test
就可以了。 它給出了一個結果:
{“@ odata.context”:“ http:// localhost:21021 / odata / $ metadata#Edm.String”,“value”:“inanc”}
但是帶有名稱param
的參數的函數不起作用。 我收到404錯誤。
我通過http:// localhost:21021 / odata / towns / EchoTest?param = foo調用了該方法。
我哪里做錯了? 我應該有一些接受參數的自定義函數。
謝謝。
你錯過了。 .Collection
:
builder.EntityType<Town>().Collection
.Function("EchoTest")
.Returns<IActionResult>()
.Parameter<string>("param");
正確的URL: http:// localhost:21021 / odata / Towns / Default.EchoTest(param ='foo')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.