gpt4 book ai didi

asp.net-web-api - 如何在 ASP.NET WebAPI RC 中绑定(bind)一个简单的 POST 值?

转载 作者:行者123 更新时间:2023-12-04 21:47:59 24 4
gpt4 key购买 nike

我的一个 API Controller 上有一个 POST 方法,它采用单个字符串值:

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

我将发布请求的正文发布到此:
foo=123412341234

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

在 WebAPI 的候选发布版本中,这已经悄然停止工作——它不再绑定(bind) foo 了。为了使代码正常工作,我不得不用以下方法替换该方法:
public string Post(FormDataCollection form) {
var foo = form.Get("foo");
return(fooOracle.ValidateFoo(foo) ? "success" : "failure");
}

这行得通,但它有点凌乱,并且比以前的版本需要更多的管道来测试。

我是否错过了一些细微的变化,或者 [FromBody] 绑定(bind)语法是否已被弃用以支持这种相当冗长的绑定(bind)语法?该属性仍然存在,但目前还不清楚它在 RC 版本中的实际作用。

最佳答案

它实际上有一个微妙的变化,它不能处理像'foo = 123412341234'这样的输入,但会处理'= 123412341234'作为输入。您可以让客户稍后发送吗?

如果不是,您可以如下创建一个包装器类,并使您的操作期望 stringwrapper 作为参数而不是 String 本身。

类 StringWrapper { public string Foo {get;放;} }

关于asp.net-web-api - 如何在 ASP.NET WebAPI RC 中绑定(bind)一个简单的 POST 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11033052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com