11

我正在尝试访问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;
}

和一些剃刀代码从一个视图。在这里,我决定仅在用户当前未经过身份验证时才包含登录弹出窗口(Foundation Reveal)的 html - 有意义。

@if (!Html.IsAuthenticated())
{
    Html.Partial("Reveals/SignInReveal");
}  
4

1 回答 1

11

您可以NancyContext通过该Html属性的RenderContext属性访问 。

示例用法:

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

<p>Current User: @Html.RenderContext.Context.CurrentUser </p>

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

@Context.CurrentUser.UserName
于 2012-07-27T13:25:39.953 回答