繁体   English   中英

在MVC 5中使用FromUri或FromBody

[英]Using FromUri OR FromBody in MVC 5

我想公开我的POST方法,该方法允许用户使用在url中编码写在请求正文中的参数来调用它。 伪代码:

public HttpResponseMessage MyMethod([FromUri, FromBody] parameters)
{
    //..
}

通过公开两种方法甚至是不可能的:

public HttpResponseMessage MyMethod([FromUri] parameters)
public HttpResponseMessage MyMethod([FromBody] parameters)

因为它们具有相同的签名。 如何以简单的方式实现这一目标?

您不能开箱即用。 如果您尝试同时使用这两个属性,则会出现以下错误: 无法绑定参数“ xxx”,因为它具有冲突的属性。

两种可能的解决方案:

  1. 使用两种不同的方法,但使用两种不同的动词(例如,一个获得,一个发布)-简单的方法
  2. 只能使用[FromUri]并使用自定义操作过滤器(像这样 )来检查身体的内容和,如果存在的话,手动解析它,并将其绑定到正确的方法参数-不容易的方式,但功能更强大。

希望能帮助到你 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM