MVC可以反序列化具有perl_script命名约定的json字符串

时间:2016-05-02 07:15:38

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

我们正在与第三方供应商合作,该供应商将以下对象作为表单帖子的一部分传递

{
    "application": 123,
    "order_reference": "01234",
    "new_status": "initialize"
}

由于这不是C#中的标准命名约定,我创建了以下模型。

public class Response
{
    [JsonProperty("application")]
    public string Application {get; set;}

    [JsonProperty("order_reference")]
    public string OrderReference {get; set;}

    [JsonProperty("new_status")]
    public string NewStatus {get; set;}
}

我在控制器中有以下代码。

[HttpPost]
public Notify(Response response)
{
   // code.
}

请求来自上面的方法,但是对象没有反序列化,我可以看到,只有application属性被映射。

任何人都可以让我知道,我是否可以使用我创建的模型,或者我必须创建与响应即将到来相同的模型?

1 个答案:

答案 0 :(得分:0)

只需将属性包装在json对象中并对其进行字符串化即可。我测试了它并且它正在工作

   var Response = {
                response:{

                    'Application': "123",
                    'order_reference': "01234",
                    'new_status': "initialize"

                }
            };

收到Ajax请求的C#代码

    [HttpPost]
    public Notify(Response response)
    {
        // code.
    }

    public class Response
    {
        public string Application { get; set; }

        public string order_reference { get; set; }

        public string new_status { get; set; }
    }