如何在ServiceStack中使用带有URI而不是查询字符串的预定义路由?

时间:2018-05-30 08:53:32

标签: c# routes servicestack

ServiceStack中是否有可能(如果是,如何)在URI中使用带参数的预定义路由? 我可以做其中一个但是两者结合似乎不起作用:

[Route("/hello/{Name}")]

// ok
1. /hello/myname
2. /json/reply/hello
3. /json/reply/hello?Name=myname

// not ok
4. /json/reply/hello/myname
"The operation 'myname' does not exist for this service"

尝试了这些但没有奏效:

[Route("/*/hello/{Name}")]
[Route("/{*}/hello/{Name}")]

特别是,为什么3有效,但不是4? 谢谢!

1 个答案:

答案 0 :(得分:1)

不,ServiceStack's pre-defined routes 无法自定义,并遵循明确的格式:

/{format}/[reply|oneway]/{servicename}

即。您可以定义自己的自定义路径,但不能更改保留其预定义行为的预定义路线。

要在URL上发送您需要使用queryString的参数,例如:

 /json/reply/Hello?name=myname

否则,您可以使用ServiceStack支持的其他方法发送参数,例如序列化的请求主体,FormData,HTTP标头等