发表json没有反映在object参数中

时间:2017-03-14 12:34:06

标签: c# json asp.net-mvc typescript

在我的网络应用程序中,我以json格式发布消息对象以将其保存到数据库中。使用Firefox中的devtools我可以看到有效的json被发布但是在调试服务器代码(MVC c#)时,Message类型的参数对象有一个空标题和body属性。

typescript中的对象定义:

export interface IMessage {
    title: string;
    body: string;
    isHidden: boolean;
}

将对象发布到服务器的代码:

public postNewMessage(message: IMessage)
{
    return this.http.postJson("/messages/newmessage", message);
}

我看到json发布到网络服务器:

{"title":"title","body":"body message","isHidden":true}

服务器代码:

[HttpPost("newmessage")]
public async Task<JsonResult> Post(MessageSummary message)
{
}

消息的C#类定义

public class MessageSummary
{
    public long Id { get; set; }
    public string title { get; set; }
    public string body { get; set; }
    public author author { get; set; }
}

因此,当我在服务器sideaction上设置断点时,消息对象不为null,但title和body属性为空。

2 个答案:

答案 0 :(得分:0)

我之前从未使用过打字稿,但身体旁边的,不是:吗?

export interface IMessage {
    title: string;
    body, string;
    isHidden: boolean;
}

答案 1 :(得分:0)

我想出来了,解决方案实际上相当简单,只需添加[FromBody]我就得到了发布的对象数据:

[HttpPost("newmessage")]
public async Task<JsonResult> Post([FromBody] MessageSummary message)
{
}