2013-09-24 90 views
1

我有一个FilterAttribute在我的MVC 4 + ServiceStack应用,像这样:获取路线中ServiceStack RequestFilterAttribute

public class AuthSignatureRequired : ServiceStack.ServiceInterface.RequestFilterAttribute, IHasRequestFilter 
{ 

用户可以访问这样的路线:

[Route("/apple/locations/", Verbs = "GET")] 
[Route("/apple/locations/{Region}", Verbs = "GET")] 

如何从获取路线在我的AuthSignatureRequired()请求过滤器属性内?

例如,如何从上面的URI获取“apple”?

我试过这个工程,但有没有更好的方法?

req.AbsoluteUri.Replace("http://", "").Split('/')[1] 

回答

1

您应该从填充的请求DTO中获取路由变量占位符,如{Region}。对于PathInfo的其余部分,您应该从req.PathInfo得到它。

+0

您推荐使用占位符而不是使用上面使用的方法吗?你有一个如何做你推荐的例子吗? – user1477388