4

我正在尝试从实际正文中通过我的 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 传递数据,任何建议都将受到高度赞赏。

在此处输入图像描述

4

2 回答 2

4

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

编辑:

在此处输入图像描述

于 2013-07-09T17:47:52.867 回答
0

使用隐藏字段并在发布之前设置它的值。只要确保它在您的表单中。

@Html.HiddenFor(Model.data)

使用 jQuery 在 javascript 中设置值:

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

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

<input type="hidden" id="data" name="data" />
于 2013-07-09T17:30:55.057 回答