Como faço para acessar Nancy CurrentUser propriedade de dentro de uma Navalha vista?
Pergunta
Estou tentando acessar o CurrentUser
propriedade do NancyContext
.Como posso fazer isso de dentro do html de uma Navalha vista?
Eu ficaria muito grato por um trecho de código, se possível.
Obrigado
Editar
Eu agora estender Nancy.ViewEngines.Razor.HtmlHelpers
para me dar cross-exibir os dados com um açúcar sintático que mantém o modo de exibição de código concisa e legível.
Aqui estão alguns exemplos:
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;
}
E alguns navalha de código a partir de um modo de exibição.Aqui eu estou decidindo incluem o html de um Sinal Em pop-up (Fundação Revelar) apenas se o usuário não está autenticado - faz sentido.
@if (!Html.IsAuthenticated())
{
Html.Partial("Reveals/SignInReveal");
}
Solução
Você pode acessar o NancyContext
através do Html
propriedade RenderContext
propriedade.
Um exemplo de uso:
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<dynamic>
<p>Current User: @Html.RenderContext.Context.CurrentUser </p>
No entanto, se estiver a utilizar o SuperSimpleViewEngine (graças a comentário @Sean) então você pode fazer semelhante usando o
@Context.CurrentUser.UserName