自定义RazorPage可以访问IRequest和Route Info

时间:2017-07-24 19:38:18

标签: servicestack servicestack-razor

使用ServiceStack和AspNetCore的Razor实现如何访问IRequest以获取自定义剃刀页面的路由信息​​?最终,我希望尽可能获得路线上的Name属性。

公共抽象类CustomView:RazorPage     {         public IRequest Req {get;组; } //永远为空

    protected Breadcrumb Breadcrumb
    {
        get
        {
            return new Breadcrumb(this.Req); // need to pass IRequest to breadcrumbs so it can produce them
        }
    }
}

路由使用自定义属性定义,该属性继承自Route。

[CustomRoute("/message/{id}", View = "MessageDetailView", Name = "GetById")]

自定义路线:

 public class CustomRoute : RouteAttribute
    {
        public string Name { get; set; }
        public string View { get; set; }
        public CustomRoute(string path) : base(path) { }
        public CustomRoute(string path, string verbs) : base(path, verbs) { }
    }

1 个答案:

答案 0 :(得分:0)

似乎至少在Web应用程序(而不是自托管)中,以下工作:

 IRequest req = HostContext.TryGetCurrentRequest();