C# WebApi RouteAttribute出现错误
这是我的前缀属性C# WebApi RouteAttribute出现错误,c#,asp.net-web-api,asp.net-web-api-routing,C#,Asp.net Web Api,Asp.net Web Api Routing,这是我的前缀属性 [RoutePrefix("news/farms")] public class farmsController : ApiController 我想根据farmid删除一行,但我想要这样的url结构 /news/farms/{farmId}?version={version} 我试着按下面的代码发送url [HttpDelete, Route("{farmId}?version={Version}", Name = "Deletefarm")] 但它表明 The r
[RoutePrefix("news/farms")]
public class farmsController : ApiController
我想根据farmid删除一行,但我想要这样的url结构
/news/farms/{farmId}?version={version}
我试着按下面的代码发送url
[HttpDelete, Route("{farmId}?version={Version}", Name = "Deletefarm")]
但它表明
The route template cannot start with a '/' or '~' character and it cannot contain a '?' character.
请告诉我是否有其他方法可以解决此错误?为什么要尝试将版本添加到路由中作为查询参数?这不是您想要的控制器路由吗 然而: 这样行吗
[HttpDelete]
public async Task<IActionResult> Delete(int id, [FromQuery] string version)
{
//...your code
}
[HttpDelete]
公共异步任务删除(int-id,[FromQuery]字符串版本)
{
//…您的代码
}
使用
[FromQuery]
可以指定希望从。。。。查询;) URI路径中不能有查询字符串,因此不允许使用,请参阅-
对于你的答案,你想要的是-
[HttpDelete]
public IActionResult DeleteFarm(int farmId, [FromQuery] string version)
{
//
}
设置
RoutePrefix
,如示例所示:
[RoutePrefix("news/farms")]
public class FarmsController : ApiController
以及您的删除方法:
[HttpDelete]
[Route("{farmId}")]
public void Delete(int farmId, string version)
那么这应该是可行的:
…/news/farms/1?version=myVersion