ServiceStack是否为null?

时间:2013-03-29 18:09:04

标签: rest servicestack

我想让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);
    }
}

1 个答案:

答案 0 :(得分:3)

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

/api/test/null/2

你可以这样做:

/api/test?E=2