【问题标题】:Servicestack Query String服务栈查询字符串
【发布时间】:2013-04-02 14:20:09
【问题描述】:

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

以下代码 sn-p 说明了我想要实现的目标。 (我想将 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 提供的示例,但我无法将其应用于我的情况。

谢谢。

【问题讨论】:

    标签: routing servicestack


    【解决方案1】:

    请重新阅读Routing wiki page:

    注意:QueryString、FormData 和 HTTP 请求正文不属于 Route (即只有 /path/info 是),但它们都可以用于 除了每个 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; }
    }
    

    【讨论】:

    • 感谢您的快速回复。我最终做的是保留 [Route("/smscallback")] ,然后在发送的实际查询字符串中映射属性,例如。 FN={SenderNumber}&TN={ContactNumber}。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多