如果用户未登录,如何禁用MenuItem?

时间:2009-12-23 17:56:06

标签: c# asp.net

如果用户未登录,如何禁用?

<asp:MenuItem NavigateUrl="~/Customizations.aspx" Text="Customizations" Enabled="<%# Page.User.Identity.IsAuthenticated %>" />

即使我在Page_Load方法中指定了Page.DataBind(),也不起作用。

<% if (HttpContext.User.Identity.IsAuthenticated) { %>
    <asp:MenuItem NavigateUrl="~/Customizations.aspx" Text="Customizations" />
<% } %>

给出错误:分析器错误消息:此上下文不支持代码块。

我尝试添加ID属性,但是它提示错误,说明它不是受支持的属性。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在尝试制作像winforms这样的网页形式时,微软出现了简短,并没有忠实地代表winforms MenuItem对象中的很多属性,特别是Visible属性。他们还密封了班级,禁止通过多态性解决这种疏忽。

能够做到这样的事情会很棒:

<asp:MenuItem NavigateUrl="~/Customizations.aspx" Text="Customizations" Visible="<%# HttpContext.User.Identity.IsAuthenticated %>/>

您可能不得不在代码隐藏中建立或修改列表。

答案 1 :(得分:0)

我会说通过设置Visible =“false”来默认用户可能会遇到的问题,对于应该可见的那些默认,在代码中设置Visible = true ...没有任何良好的内联支持这是在网络表格中。

HTH