0

基本的に私の質問は、この質問に基づいています:

ログオンしているユーザーのみにメニュー項目を表示する

彼らが前の質問でそれを解決した方法は、ハッキーな方法です。この問題について少し読んだところ、ユーザーの役割に基づいてボタンを表示または非表示にするカスタム HTML ヘルパーを作成する必要があることがわかりました。

したがって、ビューでは次のようになります。

 @HTML.MyCustomHelperWhichShowButton("ButtonText"); 

しかし、そのようなヘルパーをどのように実装すればよいでしょうか?

4

1 に答える 1

1

しかし、そのようなヘルパーをどのように実装すればよいでしょうか?

HtmlHelperクラスに拡張メソッドを記述することにより:

public static class HtmlExtensions
{
    public static IHtmlString MyCustomHelperWhichShowButton(this HtmlHelper html, string text)
    {
        var isAuthnticated = html.ViewContext.HttpContext.User.Identity.IsAuthenticated;
        if (isAuthnticated)
        {
            return html.ActionLink(text, "MyListings", "List");
        }

        return new HtmlString(string.Empty);
    }
}

このクラスを定義した名前空間をファイルの<namespaces>セクションに追加する~/Views/web.configと、このヘルパーがすべてのビューのスコープに含まれます。

于 2013-06-03T10:29:33.353 に答える