我正在嘗試訪問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