[C#]Web API 需要绑定模型?

发布时间: 2017/2/24 2:52:34
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

使用角,我发送一个 HTTP 请求

$scope.addFiles = function (files) {
        for (var i = 0; i < files.length; i++) {
            var file = files[i];
            $http.post('/api/files/addFiles', JSON.stringify({ testName: "test", someRandomCrap:"asdf"}));
        }
    }

我在我的控制器正确接收请求。然而,响应为空︰Null Request :(

在验证内容标头是好的和实际发送信息了之后, 我换一个通用对象示例对象︰

It Works!

你瞧。它工作 !从此,我的猜测是 Web API 无法绑定到我的对象。这使我想到我的问题︰ Web API 需要要绑定到的对象?

TestObject:

public class TestObject
{
    string testName { get; set; }
    string someRandomCrap { get; set; }
}

解决方法 1:

试试这个︰

$scope.addFiles = function (files) {
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        $http.post('/api/files/addFiles', { testName: "test", someRandomCrap:"asdf"});
    }
}

两件事︰

  • 在 asp.net api,整个请求体所以绑定到参数,我们不需要在请求正文中指定属性名称。看看这个︰ web api 放认识到查询字符串,但不是身体
  • 不需要 JSON.stringify 否则它将被视为您整个对象的字符串。在你的第二张图片, fileName 是字符串类型

此外尝试公开您的属性︰

public class TestObject
{
    public string testName { get; set; }
    public string someRandomCrap { get; set; }
}
赞助商