【发布时间】:2018-12-29 04:28:45
【问题描述】:
我正在尝试将具有重复操作的 WebAPI 控制器合并,以限制控制器蔓延。当我尝试使用 [RoutePrefix("")] 和不同的方法级别 [Route("")]
尝试执行此操作时,这将需要一个控制器“具有相同参数类型”的多个帖子我可以做些什么来允许多个 Post 请求?
错误: CS0111 类型“DataController”已经定义了一个名为“Post”且参数类型相同的成员
来自 packages.config
的 WebApi 版本<package id="Microsoft.AspNet.WebApi" version="5.2.6" targetFramework="net461" />
示例代码:
using System.Collections.Generic;
using System.Web.Http;
namespace UberCool.v1.Data.Controllers
{
[RoutePrefix("api/v1/data")]
public class DataController : ApiController
{
[Route("/cars")]
public List<Cars> Post()
{
var response = new CarsSFTP().GetData();
return response;
}
[Route("/trucks")]
public List<Trucks> Post()
{
var response = new TrucksSFTP().GetData();
return response;
}
}
}
谢谢!
【问题讨论】:
-
称他们为 PostCars 和 PostTrucks。但实际上,为什么在您获得汽车和卡车时发布?
-
我尝试了您建议的方法名称前缀,并且确实有效。我没有意识到字符串将方法名称的第一部分拆分为重复项。这解决了我试图解决的问题。至于动词的选择,我同意你保持标准,这只是一个例子,但我应该使用 GET 来简化它。
标签: c# asp.net-web-api