我正在尝试访问NancyContext
的CurrentUser
属性。我如何在Razor视图的html中执行此操作?如何从Razor视图中访问Nancy的CurrentUser属性?
如果可能,我将不胜感激代码片段。
感谢
编辑
我现在延长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");
}
任何理由,你为什么不把做类似它在模型上? – JefClaes 2012-08-06 07:32:17
是的。 CurrentUser信息用于许多视图,但不是全部。因此,将其集中在一个可重复使用的地方会更容易,而不必记住为每个视图设置模型。我发现通过Razor.HtmlHelpers扩展方法提供交叉视图数据更为方便 – biofractal 2012-09-21 15:39:27