Ich versuche, auf die CurrentUser
Eigenschaft der NancyContext
zuzugreifen. Wie mache ich das aus dem HTML einer Razor-Ansicht heraus?Wie kann ich in einer Razor-Ansicht auf die CurrentUser-Eigenschaft von Nancy zugreifen?
Ich wäre dankbar für ein Code-Snippet, wenn möglich.
Dank
bearbeiten
erweitere ich jetzt Nancy.ViewEngines.Razor.HtmlHelpers
mir mit syntaktischem Zucker Quer Ansicht Daten zu geben, die die Ansicht Code kurz und bündig und lesbar halten.
Hier sind ein paar Beispiele:
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;
}
Und einige Rasierer Code aus einer Ansicht. Hier entscheide ich mich, den HTML-Code für ein Anmelde-Popup (Foundation Reveal) nur dann einzuschließen, wenn der Benutzer gerade nicht authentifiziert ist - sinnvoll.
@if (!Html.IsAuthenticated())
{
Html.Partial("Reveals/SignInReveal");
}
Gibt es Gründe, warum Sie nicht setzen es auf dem Modell? – JefClaes
Ja. Die CurrentUser-Info wird für viele Ansichten verwendet, aber nicht für alle. Daher ist es einfacher, dieses an einem einzigen wiederverwendbaren Ort zu zentralisieren, anstatt sich daran zu erinnern, das Modell für jede einzelne Ansicht einzurichten. Ich finde es viel bequemer, Queransicht Daten über Razor.HtmlHelpers Erweiterungsmethoden – biofractal