如何将单个FromBody字符串参数传递给WEB API方法?

时间:2015-03-17 16:08:47

标签: asp.net-web-api2

这是我的Web API方法签名:

[HttpPut]
    public TraceItemNoBreadCrumbs UpdateTraceItem(int traceId, string itemType, string itemId, [FromBody]string notes)

我使用Postman来测试这个,如果我只是通过输入体:

"我的笔记"

然后检查传入的参数是否正确。 但前端帖子需要传递如下: 数据: {" notes":" My Notes" }

但是当我把它传入时,现在注释="注意",不是"我的笔记" (它看到的第一个字符串)。

我只遇到一个字符串问题。

在另一个方法中,我传入[FromBody] myListObject 像

[
    { "prop1": "value", "prop2": "value" }
    { "prop1": "value", "prop2": "value" }
]

它完美无缺。 我只需要为我们的前端人员解决这个问题。

2 个答案:

答案 0 :(得分:0)

我不得不接受字符串,而是必须在对象内部对字符串进行建模。 所以它看起来像:

[HttpPut]
    public TraceItemNoBreadCrumbs UpdateTraceItem(int traceId, string itemType, string itemId, [FromBody]TraceItemNote notes)

TraceItemNote的样子:

public class TraceItemNote
{
    public string Notes { get; set; }
}

我认为因为我们发送的是JSON对象,所以它们必须有一个C#对象。

答案 1 :(得分:0)

由于它来自正文,因此您无需将其格式化为json对象。只是将“我的笔记”单独传递给身体。