如何访问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