在ServiceStack Razor视图中访问会话

我正在尝试访问ServiceStack剃刀视图(部分)内的会话。 在这种情况下,我只是试图呈现会话中存在的菜单。

@(new HtmlString(this.SessionAs<CustomUserSession>().MenuHtmlString))

我得到这个错误:

响应状态

错误代码NullReferenceException消息对象引用未设置为对象的实例。 堆栈跟踪[BOPBasicInfo1VM:2014/1/31 9:46:45]:[请求:{QuoteNumber:1,AgencyId:0,错误:[],IsValid:False}] System.NullReferenceException:对象引用未设置为对象的实例。 ServiceStack.Razor.ViewPage上的1.WriteTo(StreamWriter writer) at ServiceStack.Razor.Managers.RazorPageResolver.ExecuteRazorPageWithLayout(IRequest httpReq, IResponse httpRes, Object model, IRazorView page, Func 1布局)上的1.WriteTo(StreamWriter writer) at ServiceStack.Razor.Managers.RazorPageResolver.ExecuteRazorPageWithLayout(IRequest httpReq, IResponse httpRes, Object model, IRazorView page, Func在ServiceStack.Formats.HtmlFormat的ServiceStack.Razor.Managers.RazorPageResolver.ProcessRequest(IRequest httpReq,IResponse httpRes,Object dto)上的.Razor.Managers.RazorPageResolver.ResolveAndExecuteRazorPage(IRequest httpReq,IResponse httpRes,Object model,RazorPage razorPage) ServiceStack.Formats.HtmlFormat.SerializeToStream(IRequest请求,Object响应,IResponse httpRes)上的System.Linq.Enumerable.Any [TSource](IEnumerable 1 source, Func 2谓词)中的c_DisplayClass2.b__0(IViewEngine x)

我是否正确地访问会话? 任何想法,为什么这是失败?

据我所知,在SS Razor Views中没有断点/调试支持,是否随最新版本v4.0.8.0 +发生了变化?


这个问题结果出来了

@(new HtmlString())

而不是

this.SessionAs<CustomUserSession>().MenuHtmlString

我想通过在类上创建静态方法并将“this”传递给它来让我可以调试。

    public static HtmlString GetMenu(ServiceStack.Razor.ViewPage page)
    {
        return new HtmlString(page.SessionAs<FMIC.DTOs.Entities.CustomUserSession>().MenuHtmlString);
    }

并从视图中调用它。

@(ViewPageExtensions.GetMenu(this))

我还会从ServiceStack论坛添加来自Demis(mythz)的评论

为了帮助调试,我会从Razor视图中调用您自己的方法,以便您可以放置​​断点并检查传入的值。

您还应该希望能够使用NuGet发布的源代码调试v4.09源代码,以下是一些说明:https://github.com/ServiceStack/ServiceStack/wiki/Debugging#wiki-debugging-source-symbols-in-的NuGet的程序包

链接地址: http://www.djcxy.com/p/65513.html

上一篇: Accessing Session in the ServiceStack Razor View

下一篇: ServiceStack Razor Views not compiling