【发布时间】:2017-10-06 16:29:34
【问题描述】:
我的 ASP.Net 核心 Web Api 项目中有一个通用抽象控制器,带有 POST 处理:
[HttpPost]
public async Task<IActionResult> Create([FromBody]R itemDto)
{
var ret = await _service.CreateNewItemAsync(itemDto);
return CreatedAtRoute("Get", new { id = ret.Id }, ret);
}
“获取”路线如下所示:
[HttpGet("{id}", Name = "Get")]
public async Task<R> GetAsync(int id)
{
var model = await _service.GetItemAsync(id);
return model;
}
我有 2 个继承自此基本控制器的控制器类,当我尝试在其中一个控制器上进行简单获取时,我收到以下错误消息:
错误 1: 具有相同名称“Get”的属性路由必须具有相同的模板: 操作:'MyApi.WebApi.Controllers.FooController.GetAsync' - 模板:'api/foo/{id}' 操作:'MyApi.WebApi.Controllers.BarController.GetAsync' - 模板:'api/bar/{id}'
我收到此错误的原因很明显,但我不知道如何在基本控制器中使用命名路由。
谁能指出我正确的方向?
【问题讨论】:
-
我遇到了类似的问题 (stackoverflow.com/questions/48633939/…),如果您的问题解决了,请告诉我。
标签: c# asp.net asp.net-web-api .net-core asp.net-core-webapi