Session 在ServiceStack Razor视图中访问会话
我正在尝试访问ServiceStack Razor视图中的会话(部分)。在这种情况下,我只是试图呈现会话中存在的菜单Session 在ServiceStack Razor视图中访问会话,session,razor,servicestack,Session,Razor,servicestack,我正在尝试访问ServiceStack Razor视图中的会话(部分)。在这种情况下,我只是试图呈现会话中存在的菜单 @(new HtmlString(this.SessionAs<CustomUserSession>().MenuHtmlString)) @(新的HtmlString(this.SessionAs().MenuHtmlString)) 我得到这个错误: 响应状态 错误代码 NullReferenceException 消息 对象引用未设置为对象的实例。 堆栈跟踪
@(new HtmlString(this.SessionAs<CustomUserSession>().MenuHtmlString))
@(新的HtmlString(this.SessionAs().MenuHtmlString))
我得到这个错误:
响应状态
错误代码
NullReferenceException
消息
对象引用未设置为对象的实例。
堆栈跟踪
[BOPBasicInfo1VM:1/31/2014 9:46:45 PM]:[REQUEST:{QuoteNumber:1,AgencyId:0,错误:[],IsValid:False}]
System.NullReferenceException:对象引用未设置为实例
指一个物体。在ASP
ServiceStack.Razor.ViewPage1.WriteTo(StreamWriter writer)位于
ServiceStack.Razor.Managers.razorpagesolver.ExecuteRazorPageWithLayout(IRequest
httpReq,IResponse httpRes,对象模型,IRazorView页,函数
布局)在
ServiceStack.Razor.Managers.razorpagesolver.ResolveAndExecuteRazorPage(IRequest
httpReq,IResponse httpRes,对象模型,RazorPage RazorPage)位于
ServiceStack.Razor.Managers.razorpagesolver.ProcessRequest(IRequest
httpReq、IResponse httpRes、Object dto)位于
ServiceStack.Formats.HtmlFormat.c_DisplayClass2.b__0(IViewEngine
x) 在System.Linq.Enumerable.Any[TSource](IEnumerable1源,Func
2
谓词)at
ServiceStack.Formats.HtmlFormat.SerializeToStream(IRequest请求,
对象响应,i响应(httpRes)
我是否正在尝试正确访问会话?你知道为什么这会失败吗
据我所知,SS Razor视图中没有断点/调试支持,最新版本v4.0.8.0+是否改变了这一点?问题在于
@(new HtmlString())
而不是
this.SessionAs<CustomUserSession>().MenuHtmlString
我还将在ServiceStack论坛上添加来自Demis(mythz)的评论
为了帮助调试,我将从Razor视图调用您自己的方法
因此,您可以放置断点并检查传入的值
您还应该能够使用
使用NuGet发布的源符号,一些说明:
public static HtmlString GetMenu(ServiceStack.Razor.ViewPage page)
{
return new HtmlString(page.SessionAs<FMIC.DTOs.Entities.CustomUserSession>().MenuHtmlString);
}
@(ViewPageExtensions.GetMenu(this))