加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api – 如何在ASP.NET WebAPI RC中绑定一个简单的PO

发布时间:2020-12-16 07:45:25 所属栏目:asp.Net 来源:网络整理
导读:我在我的一个API控制器上有一个POST方法,它接受一个字符串值: public string Post([FromBody] string foo) { return(fooOracle.ValidateFoo(foo) ? "success" : "failure");} 我正在使用帖子请求的正文发布到这个: foo=123412341234 (即,您可以通过提交浏
我在我的一个API控制器上有一个POST方法,它接受一个字符串值:

public string Post([FromBody] string foo) {
    return(fooOracle.ValidateFoo(foo) ? "success" : "failure");
}

我正在使用帖子请求的正文发布到这个:

foo=123412341234

(即,您可以通过提交浏览器表单以及使用HTTP客户端来启动常规HTTP POST)

在WebAPI的候选版本中,它已经默默地停止工作 – 它只是不再绑定foo.为了使代码正常工作,我必须用以下方法替换方法:

public string Post(FormDataCollection form) {
    var foo = form.Get("foo");
    return(fooOracle.ValidateFoo(foo) ? "success" : "failure");
}

这可行,但它有点混乱,涉及比以前版本更多的管道测试.

我是否错过了一些微妙的变化,或者是否已弃用[FromBody]绑定语法而支持这种相当冗长的绑定语法?该属性仍然存在,但它真的不清楚它在RC版本中实际做了什么.

解决方法

实际上有一个微妙的变化,它无法处理输入,如’foo = 123412341234′,但会处理’= 123412341234’作为输入.你可以让客户端发送它吗?

如果没有,你可以创建一个如下所示的包装类,并使你的行为期望stringwrapper作为参数而不是String本身.

Class StringWrapper {public string Foo {get;设置;}}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读