Asp.net web api web api控制器操作方法
我正在尝试让web api调用工作:我想提交一个电子邮件地址,然后在服务器上,该方法将验证并返回null或消息 这就是我所尝试的:Asp.net web api web api控制器操作方法,asp.net-web-api,Asp.net Web Api,我正在尝试让web api调用工作:我想提交一个电子邮件地址,然后在服务器上,该方法将验证并返回null或消息 这就是我所尝试的: [Post] public string validate(string email) { return this._contextProvider.ValidateEmail(email); } 但是,我将此消息返回给客户机:未找到与请求URI匹配的HTTP资源 有效负载如下所示:{email:Greg@gmail.com
[Post]
public string validate(string email) {
return this._contextProvider.ValidateEmail(email);
}
但是,我将此消息返回给客户机:未找到与请求URI匹配的HTTP资源
有效负载如下所示:{email:Greg@gmail.com}事实证明,问题在于参数绑定 在Web API中,绑定的处理方式与MVC不同。默认情况下,简单类型是从URI提取的,而不是从主体提取的。从消息体中提取复杂类型 然后我将[FromBody]属性添加到Action方法中,然后它找到了Action方法。但是,唉,email参数是空的
public string validate([FromBody]string email) {
return this._contextProvider.ValidateEmail(email);
}
事实证明,当使用这个技巧时,主体不能是json,而是像querystring-电子邮件一样构造=greg@gmail.com
。我不想这样做,所以最终创建了一个类来接受参数,并且按照预期工作
public class ParameterizedAction {
public string Parameter { get; set; }
}
public string validate(ParameterizedAction arg) {
return this._contextProvider.ValidateEmail(arg.Parameter);
}
本文提供了更多信息:
除了这个: