Добавление runat = "server" не отображает теги моего сервера <% ...%>
У меня есть мастер-страница с несколькими
для меню, и так как я должен установить класс= выбран для текущей страницы, я использую небольшой тег сервера, чтобы найти URL и назначить определенный класс.
У меня есть 10
, и не все меню доступны для всех типов пользователей,Мне нужно переключить несколько из , если пользователь не является администратором, поэтому мне добавили runat = "server", чтобы я мог установить их visible = false через c #
Вот как это происходит вВзгляд:
<li runat="server" id="liBlog" class='<%= Request.Url.AbsoluteUri.EndsWith("/Blog") ? "selected" : "" %>'><a href="/Blog">Group Blog</a></li>
<li runat="server" id="liPoll" class='<%= Request.Url.AbsoluteUri.EndsWith("/Poll") ? "selected" : "" %>'><a href="/Poll">Poll</a></li>
<li id="liInvite" class='<%= Request.Url.AbsoluteUri.EndsWith("/Invite") ? "selected" : "" %>'><a href="/Invite">Invite</a></li>
<li id="liFavourite" class='<%= Request.Url.AbsoluteUri.Contains("/Favourite") ? "selected" : "" %>'><a href="/Favourite">My Favourites</a></li>
без runat = "server" работает нормально, когда на правильной странице исходный код показывает class = "selected" или class = "", в зависимости от ситуации, другой раньше тоже работал нормально, пока я не решил добавить runat = "server".
Как только я добавил, что runat = "server", весь блок class = "" отправляется в htmlстраница, не обрабатывает серверные теги вообще!Я щелкаю правой кнопкой мыши по html и смотрю на источник, он отображается как:
<li id="ctl00_ctl00_ContentPlaceHolder1_liBlog" class="<%= Request.Url.AbsoluteUri.EndsWith("/Blog") ? "selected" : "" %>"><a href="/Blog">Group Blog</a></li>
Он выливает теги моего сервера в исходный код!
Почему наблюдается такое поведение?Как я могу избежать этого?
Я просмотрел много похожих тем здесь, и в Google почти ничего не было, поэтому сделал это, я не думаю, что это дублирующий вопрос.