当前位置: 首页 > 知识库问答 >
问题:

如何在ASP. NET WebAPI RC中绑定一个简单的POST值?

薛寒
2023-03-14

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

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

我在这里发布的帖子请求正文如下:

foo=123412341234

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

在WebAPI的候选版本中,这已经悄无声息地停止了工作——它只是不再绑定foo。为了让代码正常工作,我不得不用以下方法替换该方法:

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

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

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

共有1个答案

方心思
2023-03-14

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

如果没有,您可以创建一个包装器类,如下所示,并使您的操作将stringwrapper作为参数,而不是字符串本身。

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

 类似资料:
  • 我是Android系统的初学者。我有一些java的经验,但不能解决这个问题一段时间。 下面是一些背景信息:我正在尝试制作一个移动应用程序,它从画廊或相机中选择一个图像,然后发送到我的服务器。我已经完成了选择图像,并将其转换为base64,但不知何故,我无法完成http post请求的功能。我想让这个函数返回服务器的响应,但是我失败了。 我已经用注释突出显示了函数的一部分。我不明白的部分是重写方法。

  • 问题内容: 我是iOS开发的新手,我无法提出一个简单的Json POST请求。我有一个包含用户名和密码的NSDictionary,我想将这些值作为Json发送到服务器并获得响应。我在不使用restkit的情况下进行了工作,但是我无法弄清楚如何使用RestKit来完成相同的工作,而且也找不到我想要的很好的例子。 服务器期望这样的Json: 我知道RestKit中包含一个Json解析器,但是我找不到有

  • 本文向大家介绍jQuery简单绑定单个事件的方法示例,包括了jQuery简单绑定单个事件的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery简单绑定单个事件的方法。分享给大家供大家参考,具体如下: PS:这里再附上javascript常见事件与功能说明的在线对照表供大家参考: javascript事件与功能说明大全: http://tools.jb51.net/table

  • 本文向大家介绍如何实现Java中一个简单的LinkedList,包括了如何实现Java中一个简单的LinkedList的使用技巧和注意事项,需要的朋友参考一下 LinkedList与ArrayList都是List接口的具体实现类。LinkedList与ArrayList在功能上也是大体一致,但是因为两者具体的实现方式不一致,所以在进行一些相同操作的时候,其效率也是有差别的。 对于抽象的数据结构——

  • 问题内容: 我需要一个简单的代码示例,该示例发送带有从表单输入中获取的post参数的http post请求。我找到了Apache HTTPClient,它具有非常广泛的API和许多复杂的示例,但是我找不到一个简单的示例来发送带有输入参数的http post请求并获取文本响应。 更新: 我对Apache HTTPClient v.4.x感兴趣,因为不推荐使用3.x。 问题答案: 使用Apache H

  • 本文向大家介绍如何简单的实现一个promise?相关面试题,主要包含被问及如何简单的实现一个promise?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 首先明确什么是promiseA+规范,参考规范的地址:primise A+规范 如何实现一个promise,参考我的文章: 实现一个完美符合Promise/A+规范的Promise 一般不会问的很详细,只要能写出上述文章中的v1.0版本