2

我想让 R 成为一个可以为空的 int (和一个可以为空的 bool)。我可以/api/test/1/2没有问题,但/api/test/null/2会导致 SerializationException

KeyValueDataContractDeserializer: Error converting to type: Input string was not in a correct format

我尝试这样做/api/test//2,但它忽略了双斜杠并认为它是 {Ids}。

如何使 R 可以为空?

[Route("/Test")]
[Route("/Test/{Ids}")]
[Route("/Test/{R}/{E}")]
[Route("/Test/a/{Ids}/{R}/{E}/{b}/{f}")]
public class Test
{
    public long[] Ids { get; set; }
    public int? R{get;set;}
    public int E{get;set;}

    public bool? b { get; set; }
    public float f { get; set; }
}
public class TestService : Service
{
    public object Get(Test a)
    {
        return JsonSerializer.SerializeToString(a);
    }
}
4

1 回答 1

3

您的null路线中的 被视为字符串文字,显然不是有效数字。基本上,您首先要避免传入 null (即避免指定它),例如,而不是:

/api/test/null/2

你可以做:

/api/test?E=2
于 2013-03-29T18:14:54.137 回答