0

基本上我的问题是基于这个问题:

仅为登录用户显示菜单项

他们在之前的问题中解决它的方式是一种 hacky 方式。我阅读了一些关于这个问题的信息,发现您必须创建自定义 HTML Helper,它会根据用户角色显示或隐藏按钮。

所以它在视图中看起来像:

 @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 回答