Servicestack查询字符串

时间:2013-04-02 14:20:10

标签: routing servicestack

我正在尝试将设置查询字符串中的值链接到服务堆栈对象中的属性。

以下代码段说明了我要实现的目标。 (我想将FN映射到SenderNumber,TN映射到ContactNumber等。)

[Route("/smscallback?FN={SenderNumber}&TN={ContactNumber}&MS={Response}&TS={TS}")]
public class SmsCallback : IReturn<SmsCallbackResponse>
{
    public string SenderNumber
    {
        get;
        set;
    }
    public string ContactNumber
    {
        get;
        set;
    }
    public string Response
    {
        get;
        set;
    }
    public string TS
    {
        get;
        set;
    }
}

有谁知道怎么做?我查看了routing示例servicestack提供的内容,但我无法将其应用于我的情况。

谢谢。

1 个答案:

答案 0 :(得分:6)

请重新阅读Routing wiki page

  

注意:QueryString,FormData和HTTP Request Body不是分开的   路线(即只有/路径/信息),但它们都可以用于   除了每个Web服务调用以进一步填充请求   DTO。

您不能在路线中放置任何queryString 。如果要更改字段映射到的字段,则需要使用DataContract / DataMember属性修饰DTO,例如:

[DataContract]
public class SmsCallback : IReturn<SmsCallbackResponse>
{
    [DataMember(Name="fn")]
    public string SenderNumber { get; set; }

    [DataMember(Name="tn")]
    public string ContactNumber { get; set; }

    [DataMember(Name="ms")]
    public string Response { get; set; }

    [DataMember]
    public string TS { get; set; }
}