WebApi.Hal - HttpPost始终发送null

时间:2015-04-28 17:32:40

标签: c# json asp.net-web-api

使用WebApi.Hal时遇到HttpPosts问题。 我发布的内容如下:

     $.ajax({
            type: "POST",
            url: "http://localhost/TestWebApi/api/test/test2/",
            data: {
                "reference": bookingref,
                "leadname": leadpax,
                "_links": {}
            },
            contentType: "application/hal+json",
            //dataType: "application/hal+json",
            success: function(data, status) {
                alert("POST: Data: " + data + "\nStatus: " + status);
                $("#result").text(JSON.stringify(data, null, 4));
            },
            error: function(xhr, ajaxOptions, thrownError) {
                alert('POST: Status: ' + xhr.status + ', Error Thrown: ' + thrownError);
            }
        });

并像这样选择帖子:

    public LoginDetails PostTest2([FromBody]LoginDetails value)
    {
        return new LoginDetails();
    }

LoginDetails继承自Representation但值始终为null。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

修复了,原来我正在安装这样的Hal格式化程序......

use ieee.std_logic_textio.all;

我把它改成了......

    GlobalConfiguration.Configuration.Formatters.Clear();
    GlobalConfiguration.Configuration.Formatters.Add(new JsonHalMediaTypeFormatter());
    GlobalConfiguration.Configuration.Formatters.Add(new XmlHalMediaTypeFormatter());

因此它保留了旧的格式化程序,但在默认格式化程序之前插入了Hal格式化程序(给它们一个更高的优先级)。