私はASP.NETを初めて使い、なぜMenuItemのテキストに現在のユーザー名を表示できないのかを理解するために戦っています。私はすべてのページに配置するメニューを保持制御を作成しました:(宣言的に)MenuItemにユーザー名を入れる方法
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MainMenu.ascx.cs"
Inherits="Test1.Controls.MainMenu" %>
<asp:Menu ID="NavigationMenu" CssClass="menu" runat="server"
EnableViewState="False" IncludeStyleBlock="False" Orientation="Horizontal"
MaximumDynamicDisplayLevels="4">
<Items>
<asp:MenuItem Text="<%=HttpContext.Current.User.Identity.Name%>" />
</Items>
</asp:Menu>
<div>
User is: "<%=HttpContext.Current.User.Identity.Name%>"
</div>
終わりにDIVが<% = HttpContext.Current.User.Identity.Name%>が実際に現在のユーザー名を与えないことを証明することです(します)。ただし、MenuItem Text属性で使用すると空白になります。これを行う正しい方法は何ですか?
更新日:
これは有用なコメントなしで削除されています。実際の質問は本当に答えられていないので、私はこれを歓迎しています。私たちはこれをどう宣言していますか?なぜそれがDIVで動作するのか分かりませんが、メニューの上の4行ではありません。ページが異なるフェーズで処理されるため、これを宣言的に行うことは不可能かもしれません。
これらと同様のポストは、それは不可能それことを示唆している:
How do I make my ASP.NET server control take an embedded code block as a property value?
Why will <%= %> expressions as property values on a server-controls lead to a compile errors?
あなたは、私がこれをしたい理由を知りたい場合は、それは私が作った別の質問に関連する:
How to specify path relative to current Master Page File
hum ...と思われるMenuItemはWebControlから継承しません。私は私の答えを削除しました –