如何访问Nancy';Razor视图中的CurrentUser属性?
我正在尝试访问如何访问Nancy';Razor视图中的CurrentUser属性?,razor,nancy,Razor,Nancy,我正在尝试访问NancyContext的CurrentUser属性。如何从Razor视图的html中执行此操作 如果可能的话,请给我一段代码片段,我将不胜感激 谢谢 编辑 现在我扩展了Nancy.ViewEngines.Razor.HtmlHelpers,为我提供了交叉视图数据和语法糖,使视图代码简洁易读 以下是几个例子: public static bool IsRegistered<T>(this HtmlHelpers<T> html) { var user
NancyContext
的CurrentUser
属性。如何从Razor视图的html中执行此操作
如果可能的话,请给我一段代码片段,我将不胜感激
谢谢
编辑
现在我扩展了Nancy.ViewEngines.Razor.HtmlHelpers
,为我提供了交叉视图数据和语法糖,使视图代码简洁易读
以下是几个例子:
public static bool IsRegistered<T>(this HtmlHelpers<T> html)
{
var user = GetUser(html);
return user != null && user.IsRegistered;
}
public static bool IsAuthenticated<T>(this HtmlHelpers<T> html)
{
return GetUser(html) != null;
}
public static User GetUser<T>(this HtmlHelpers<T> html)
{
return (User)html.RenderContext.Context.CurrentUser;
}
您可以通过
Html
属性的RenderContext
属性访问NancyContext
示例用法:
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
<p>Current User: @Html.RenderContext.Context.CurrentUser </p>
你为什么不把它放在模型上?是的。CurrentUser信息在许多视图中使用,但不是在所有视图中使用。因此,更容易将其集中在一个可重用的位置,而不必记住为每个视图设置模型。我发现通过Razor.HtmlHelpers扩展方法提供交叉视图数据要方便得多。我知道Razor视图引擎中的上下文。但是,如果有人,像我一样,在寻找如何在默认的SuperSimpleViewEngine中实现这一点的答案时偶然发现了这篇文章,您可以使用
@Context
标记进行类似操作。e、 g.@Context.CurrentUser.UserName
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
<p>Current User: @Html.RenderContext.Context.CurrentUser </p>
@Context.CurrentUser.UserName