【问题标题】:ApiController model binding properties not bindingApiController 模型绑定属性未绑定
【发布时间】:2015-11-19 04:54:49
【问题描述】:

我目前正在尝试使用 WebAPI 提供的新 ApiController - 即 POST 方法,因为我无法为模型绑定属性。

这是我的 ApiController 代码:

public class GameController : ApiController
{
        public void Post([FromBody]GameVMTest gameVM)
        {
        }
}

在这个例子中,我可以为这个方法创建一个 HTTP Post。 GameVM 属性已初始化,但没有任何属性绑定。

所以我认为这可能是由我的 HTTP Post 方法引起的,所以我编写了另一个 Post 方法,但这次只使用了一个继承 Controller 类的类:

public class TestController : Controller
    {
        [HttpPost]
        public void Post(GameVMTest gameVM)
        {

        }
    }

我对这个 TestController Post 方法使用了相同的 HTTP Post,一切正常。

知道为什么属性绑定适用于继承 Controller 类而不适用于 ApiController 类的类吗?

注意:我已尝试删除 [FromBody] 属性,但没有任何作用。 注意:GameVM 属性包含简单的 String 和 Int 变量 - 没什么复杂的。

提前致谢。

注意: http post 调用来自使用 Alamofire 的 iOS 应用程序。 下面是传递给上述两个方法的 JSON 字符串:

"{\"isDirty\":1,\"courtName\":\"Court 1\",\"id\":11418,\"team1\":\"Kenja Hurricane\",\"team2 \":\"亚洲之子\",\"roundId\":528}"

【问题讨论】:

  • 博文正文中发送的 JS 对象是什么?
  • 这几次发生在我身上是由一些格式错误的 json 发送引起的。例如使用“左双引号”标记而不是简单的“双引号”标记
  • 提供更多关于如何调用 WEB API 方法的信息,这将有助于识别问题。

标签: c# .net model-view-controller


【解决方案1】:

看完这篇

https://lbadri.wordpress.com/2014/11/23/web-api-model-binding-in-asp-net-mvc-6-asp-net-5/

事实证明,请求的主体必须非常特定于 WebAPI!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多