假设我有以下DTO课程
public class SumRequest : IReturn<SumResponce>
{
public int First { get; set; }
public int Second { get; set; }
}
public class SumResponce
{
public int Result { get; set; }
}
可以将路由策略设置为[路由(&#34; / sum / {First} / {Second}&#34;,&#34; GET&#34;)],它将起作用。< / p>
但是类似的东西呢 [路线(&#34; / sum / {First} + {Second}&#34;,&#34; GET&#34;)] 要么 [路线(&#34; / sum / {First}加{Second}&#34;,&#34; GET&#34;)]
为什么它不起作用?
答案 0 :(得分:0)
您可以为同一个DTO定义多个路线。例如:
[Route("/sum/{First}.+.{Second}", "GET")]
[Route("/sum/{First}.plus.{Second}", "GET")]
public class SumRequest : IReturn<SumResponce>
{
public int First { get; set; }
public int Second { get; set; }
}
public class SumResponce
{
public int Result { get; set; }
}
编辑:
看起来ServiceStack {Path}运算符需要分开。或/ chars(谢谢Mythz)。
此外,如果您使用的是IIS,为了使用加号(+),您需要允许双重转义请求。
答案 1 :(得分:0)
ServiceStack变量{Path}
组件必须由/
或.
分隔 - 这样您就可以使用.
作为变量分隔符,例如:
[Route("/sum/{First}.{Second}")]
public class Sum : IReturn<SumResponce>
{
public int First { get; set; }
public int Second { get; set; }
}
然后您可以致电:
/sum/1st.2nd
有关ServiceStack路由检出的更多信息Routing docs。