我有一种情况,我希望使用不同的动词传递给Web Api端点的相同参数。存在C#限制,不允许存在两个相同的签名。我可以将两个动词应用于相同的签名,但是我如何检查以查看传入的动词?
或者,解决此问题的最佳做法是什么?
[HttpDelete]
public IHttpActionResult Logs([FromUri] string source, [FromUri] string startDate, [FromUri] string endDate)
{
return Ok();
}
[HttpGet]
public IHttpActionResult Logs([FromUri] string source, [FromUri] string startDate, [FromUri] string endDate)
{
return Ok();
}
答案 0 :(得分:2)
有两种方法可以解决这个问题:
如果使用属性路由,则可以应用相同的路径,只需重命名方法。
将两个动词应用于相同的方法,然后在方法内部检查您获得的动词:
if(Request.Method == HttpMethod.Get)
{
// get it
}
else if(Request.Method == HttpMethod.Delete)
{
// delete it
}