在aspx页面中插入c#代码时出错

时间:2014-01-04 16:36:17

标签: c# asp.net

<body>
 <form id="form1" runat="server">
    <% string id = Session["user"].ToString(); %>//insert c# code                                                                                                  
    <asp:MenuItem Navigateurl="<%= string.Format("~/LecturerProfile.aspx?user={0}",id) %>" Text="Lecturer Profile"/>
    </asp:MenuItem>
  </form>
</body>

但它有一个错误:“无法解析符号ID”

我不确定我是否在aspx页面中插入了正确的语法来插入c#代码。

帮助!!!我想在前面的代码中导航到LecturerProfile.aspx页面。你能否给我一些建议,以便更好地在aspx页面中获取Session [“user”] ???

2 个答案:

答案 0 :(得分:0)

编辑:

使用空检查,您可以将标记更改为:

<form id="form1" runat="server">
    <div>
        <asp:Menu ID="Menu1" runat="server">
            <Items>
                <asp:MenuItem NavigateUrl='<%= string.Format("~/LecturerProfile.aspx?user={0}",Session["user"]== null? "0" : Session["user"].ToString()) %>' Text="Lecturer Profile" />
            </Items>
        </asp:Menu>
    </div>
</form>

应该是:

    <asp:MenuItem Navigateurl='<%= string.Format("~/LecturerProfile.aspx?user={0}",id) %>' Text="Lecturer Profile"/>

请注意双引号替换为单引号并删除了额外的</asp:MenuItem>

但是MenuItem需要一个菜单​​才能存在。所以你的标记应该是这样的:

<% string id = Session["user"].ToString(); %>
<asp:Menu ID="Menu1" runat="server">
    <Items>
        <asp:MenuItem NavigateUrl='<%= string.Format("~/LecturerProfile.aspx?user={0}",id) %>' Text="Lecturer Profile" />
    </Items>
</asp:Menu>

答案 1 :(得分:0)

试试这个。在会话中检查空验证总是更好

<% if (Session["user"] != null)
   {
       string id = Session["user"].ToString();
   }
%>

<asp:MenuItem Navigateurl='<%= string.Format("~/LecturerProfile.aspx?user={0}",id) %>' Text="Lecturer Profile"/>