当前位置: 首页 > 面试题库 >

从Angular发布到.net WebAPI

冀永寿
2023-03-14
问题内容

我正在使用Angular $
resource将模型发布到webapi端点,但是Angular将数据发送到请求有效负载中,而不是JSON正文或表单参数中。结果,模型总是以null结尾。

我的API如下:

public class UserController : APIController {
    [HttpPost]
    public void Disconnect(Models.Users.User model) {
    }
}

请求标头为:

POST /siteapi/User/Disconnect HTTP/1.1
Host: rouge2
Connection: keep-alive
Content-Length: 125
Accept: application/json, text/plain, */*
Origin: http://rouge2
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Content-Type: application/json;charset=UTF-8
Referer: http://rouge2/Users
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: .ASPXAUTH=115C6015BDD5C1A9D111B0A9FBF05294B73287328566F65CB1BCB457DF206EF0916D4615B5914EB443AA567E860742AC14EAA2951B9C327260C4F00649694260A1B3960771FB6675FEE8F3E68B0BB46436020ACAB33ECE0D3E70B50D6569E52B27F69161762C10C19A806A12D3254DF60EF4758DEDCA529A91CB36C74B7FA7F4; __RequestVerificationToken=Rp4Vu8R67ziDNc36DoOLZH7KmEfumig1zFDmYiFWHTsWyf2I037xJQydcmLtOfaJ3ccc8GEZXmHoa8LBRusxKFRYVoy27GuFEfNhKKYS_hUysjwCjmsxw5OCK3RKsiXIAh1Gbi0PxcdqBfzctSJn9g2

和请求有效载荷:

{"Id":3,"FirstName":"Test","LastName":"User","Username":"testuser","IsApproved":true,"IsOnlineNow":true,"IsChecked":true}

如果我在Fiddler中进行测试,并在正文中发布相同的JSON字符串,则可以按预期正确填充模型。

是否有在这种情况下可以使用的内置模型活页夹,或者可以在我可以使用的地方预先构建的东西?

还是可以请我指出一个可行的例子?


问题答案:

您可以使用$http module

这是一个例子:

<!DOCTYPE html>

<html ng-app>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div ng-controller="TestController">
        <ul ng-model="person">
            <li>FirstName: {{person.FirstName}}</li>
            <li>LastName: {{person.LastName}}</li>
            <li>UserName: {{person.Username}}</li>
            <li>IsApproved: {{person.IsApproved}}</li>
            <li>IsOnlineNow: {{person.IsOnlineNow}}</li>
            <li>IsChecked: {{person.IsChecked}}</li>
        </ul>
    </div>

    <script type="text/javascript" src="~/scripts/angular.min.js"></script>
    <script type="text/javascript">
        function TestController($scope, $http) {
            var data = { "Id": 3, "FirstName": "Test", "LastName": "User", "Username": "testuser", "IsApproved": true, "IsOnlineNow": true, "IsChecked": true };
            $http.post(
                '/api/values',
                JSON.stringify(data),
                {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                }
            ).success(function (data) {
                $scope.person = data;
            });
        }
    </script>
</body>
</html>

假设使用以下控制器:

public class ValuesController : ApiController
{
    [HttpPost]
    public User Post(User model)
    {
        return model;
    }
}


 类似资料:
  • 问题内容: 我正在使用Angular $ resource将模型发布到webapi端点,但是Angular将数据发送到请求有效负载中,而不是JSON正文或表单参数中。结果,模型总是以null结尾。 我的API如下: 请求标头为: 和请求有效载荷: 如果我在Fiddler中进行测试,并在正文中发布相同的JSON字符串,则可以按预期正确填充模型。 是否有在这种情况下可以使用的内置模型活页夹,或者可以在

  • 我试图使用angular及其http库向我的SpringRESTAPI发送post请求。 目前在post-man(成功)我发送数据的方式: 格式为表单数据 钥匙是reqData(必填) 该值为json(必需) 如何通过角以相同的方式发送数据? 目前,我的数据是这样的: 添加有关我的后端代码的更多信息: 我的rest api看起来像这样: 因此,我应该发送一个键和值(我不知道typescript中是

  • 嗨,有人能告诉我我在哪里出错了吗,我从powershell执行API调用时收到以下错误。我尝试过多种方式格式化正文,但无法使其正常工作。 我的代码;

  • 我为我的文档创建了 Azure CosmosDb 数据库和容器。我使用NiFi作为主要的数据摄取工具,并希望用NiFi流文件中的文档来馈送我的容器。任何人都可以分享一种从NiFi将flowfile内容发布到Azure Cosmos Db的方法吗? 提前致谢 更新(2019.05.26):最后我用Python脚本,从NiFi调用来发布消息。我传递了一条消息作为参数。我选择python的原因是因为它在

  • 我使用Django REST API和Angular 6作为前端。 我在配置文件模型中定义了一个接受文件输入的ImageField。 在angular应用程序中,我从Base64图像数据生成File对象,并发送到endpoint,标题为Content-type:'multipart/form-data' 编辑2:代码 方法正在使用方法发送数据。

  • 嗨,我试图张贴数据与AngarJs,但有一些问题。我的js代码如下: 我得到这个错误和当我改变代码喜欢这个然后我得到了这个错误。 无法发布到登录。html页面。这是我在AnguarJs上的第一个项目,所以不太熟悉。谢谢