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からアクセスできます。HtmlRenderContext

使用例:

@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 に答える