如何从Razor视图中访问Nancy的CurrentUser属性?

bio*_*tal 11 razor nancy

我正在尝试访问该CurrentUser属性NancyContext.如何在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;
}
Run Code Online (Sandbox Code Playgroud)

还有一些剃刀代码.这里我决定只在用户当前未经过身份验证的情况下包含用于登录弹出窗口(基础显示)的html - 这是有意义的.

@if (!Html.IsAuthenticated())
{
    Html.Partial("Reveals/SignInReveal");
}  
Run Code Online (Sandbox Code Playgroud)

nem*_*esv 11

您可以NancyContext通过Html酒店的RenderContext财产进入.

示例用法:

@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>

<p>Current User: @Html.RenderContext.Context.CurrentUser </p>
Run Code Online (Sandbox Code Playgroud)

但是,如果您正在使用SuperSimpleViewEngine(感谢对@Sean的评论),那么您可以使用

@Context.CurrentUser.UserName
Run Code Online (Sandbox Code Playgroud)