C# 如何正确实现.NET控制器方法来处理POST请求,检索URI参数和请求负载?
我必须开发一个restapi,它必须处理POST请求(从请求主体中获取有效负载),同时获取一个URI参数 在我的控制器类中,我有如下内容:C# 如何正确实现.NET控制器方法来处理POST请求,检索URI参数和请求负载?,c#,.net,asp.net-mvc,asp.net-apicontroller,C#,.net,Asp.net Mvc,Asp.net Apicontroller,我必须开发一个restapi,它必须处理POST请求(从请求主体中获取有效负载),同时获取一个URI参数 在我的控制器类中,我有如下内容: public class MailProtocolloController : ApiController { [SharePointContextWebAPIFilter] [HttpPost] [ActionName("protocollo/mail")] public IHttpActionResult InviaAlP
public class MailProtocolloController : ApiController
{
[SharePointContextWebAPIFilter]
[HttpPost]
[ActionName("protocollo/mail")]
public IHttpActionResult InviaAlProtocollo(XXX)
{
return Ok("TEST");
}
}
我的问题是:
public class MailProtocolloController : ApiController
{
[SharePointContextWebAPIFilter]
[HttpPost]
[Route("protocollo/mail/{id}")]
public IHttpActionResult InviaAlProtocollo([FromUri] string id, [FromBody] string context)
{
return Ok("TEST");
}
}
您可以使用
RouteAttribute
定义路由映射,其中可以使用参数占位符从url路径获取这些映射
如果使用FromBody
属性修饰表示请求正文的参数,也可以获取请求正文:
[RoutePrefix("protocollo")]
public class MailProtocolloController : ApiController
{
[SharePointContextWebAPIFilter]
[HttpPost]
[Route("mail/{id}")]
public IHttpActionResult InviaAlProtocollo(string id, [FromBody]string body)
{
return Ok("TEST");
}
}
“我在.NET中是个新手”-你用过,所以这不适用。阅读并展示你所做的尝试。存在大量重复问题。调用my API我获得此错误:您正在查找的资源已被删除、名称已更改或暂时不可用。请检查:(在页面底部)调用my API我获得此错误:您正在查找的资源已被删除、名称已更改,或者暂时不可用如何调用API?您能否发送一个示例,因为您收到此响应可能有很多原因。我正在调用这样的URL(在我的应用程序中?参数是必需的):
api/MailProtocollo/protocollo/mail/xxx
这是有效的路由吗?我假设您不需要MailProtocollo
url部分,那么您的路由映射现在看起来如何?