为什么MVC没有绑定字节数组?

时间:2016-06-14 18:22:40

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

如果我没记错的话,我的应用程序成功绑定了所有内容。但现在它没有,我不知道,它从来没有,或者我打破了一些东西。

这是一个控制器:

    public void SaveToDataBase(EnhancedXml enhancedXml)
    {

    }

EnhancedXml非常简单:

public class EnhancedXml
{
    public string Content { get; set; }
    public byte[] AdvancedSignature { get; set; }
}

这是我的HttpRequest:

POST http://localhost:35921/SaveToDb HTTP/1.1
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Referer: http://localhost:35921/
Accept-Language: en-US,en;q=0.7,ru;q=0.3
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Length: 38027
Host: localhost:35921
Connection: Keep-Alive
Pragma: no-cache

{"enhancedXml":{"Content":"<?xml version=\"1.0\" encoding=\"utf-8\"?><Student xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><Name>Alex</Name><LastName>B</LastName><DateOfBirth>1993-05-18T00:00:00</DateOfBirth></Student>","AdvancedSignature":[60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99]}}

Content属性绑定正常时,AdvancedSignature根本不存在。 可以用某种方式修复它,除了`创建一个字符串属性并自己编组一个数组吗?

1 个答案:

答案 0 :(得分:1)

高级签名的数据类型错误。它应该是一个整数列表。

public class EnhancedXml
{
    public string Content { get; set; }
    public List<int> AdvancedSignature { get; set; }
}