在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