我很好奇是否可以修改servicesstack路由映射规则。 我希望非查询字符串参数进入模型的一个区域,查询字符串参数进入另一个区域。
具体来说,我有这条路线:
[Route("/gis/services/{Folders*}/{ServiceName}/{ServiceType}/{LayerId}/query", HttpMethods.Get)]
public class Model : Envelope<Request>
{
}
信封的定义如下:
public class Envelope<T>
{
public string Folders { get; set; }
public string ServiceType { get; set; }
public string ServiceName { get; set; }
public int LayerId { get; set; }
public T Payload { get; set; }
}
如何将查询字符串参数映射到Payload中,并将其他所有内容(文件夹,ServiceType,ServiceName,LayerId)映射为正常情况?
答案 0 :(得分:2)
在ServiceStack路由中只定义了请求的路径信息,所有其他属性都可以由其他请求参数填充,如QueryString或Request Body。
{folders*}
这样的WildCard映射来避免歧义。 {ServiceName}
Service
名称用于请求DTO,该名称用于您的服务实施类