【问题标题】:how to pass Parameters Info from the Body in ASP.NET Web APi?如何在 ASP.NET Web APi 中从正文传递参数信息?
【发布时间】:2013-07-09 17:25:26
【问题描述】:

我正在尝试从实际正文通过我的 POST 方法传递一个冗长的字符串,如果我通过 url 传递它,它工作得非常好,但我不知道要更改什么,所以我可以从正文插入数据。

public void PostMethod(string id, [FromBody]string data)
    {
        if (ModelState.IsValid)
        {
            var result = client.Store(StoreMode.Add, id, data);
        }
        else
        {
        }

    }

如果我这样使用它:

http://localhost:8888/api/data?id=2&data=MybigString

它工作得很好,但我不想从 URL 传递数据,任何建议都将受到高度赞赏。

【问题讨论】:

    标签: c# asp.net-mvc rest asp.net-web-api


    【解决方案1】:

    给定您的操作方法public void PostMethod(string id, [FromBody]string data),您可以使用http://localhost:8888/api/data/2 的URI 和=MyBigString 的消息正文。如果你使用 jQuery,你可以使用这样的东西:$.post('api/data/2', { '': 'MyBigString' }); 来确保发送正确的消息体。

    编辑:

    【讨论】:

    • 如何使用 JQuery 添加一些数据?
    • 您现在如何调用 Web API?
    • 我正在使用 Chrome 插件,称为 POSTMAN 或 SOAP UI
    • 在 POSTMAN 中,添加标题 Content-Type: application/x-www-form-urlencoded。选择“raw”并在文本框中输入=MyBigString。对于 URL,请使用 http://localhost:8888/api/data/2
    • 我刚刚上传了截图,请你看一下,告诉我我做错了什么
    【解决方案2】:

    使用隐藏字段并在帖子之前设置它的值。只需确保它在您的表单中即可。

    @Html.HiddenFor(Model.data)
    

    使用 jQuery 在 javascript 中设置值:

    $("#data").val('my big string');
    

    或者,如果您没有绑定到强类型视图,则可以使用简单的 HTML 隐藏输入代替 @Html.HiddenFor()

    <input type="hidden" id="data" name="data" />
    

    【讨论】:

    • 能否请您更具体一点,我需要修改的确切位置,我正在.net 中编程,如果您熟悉它,它会在您创建网络时自动生成这么多类api
    • 我不知道...你告诉我。这是调用 API 方法的视图吗?
    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 2018-01-27
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多