2011-01-19 6 views
9

У меня есть ключ в web.config как -ASP.NET Условный Markup Rendering Согласно Web.config Key

<add key="IsDemo" value ="true"/> 

Я хочу, чтобы показать/скрыть разметку, основываясь на выше записи web.config для не -server html tag без использования кода за файлом (так как нет файла .cs и нет элементов управления runat = server). Нечто похожее на следующий псевдокод:

IF (IsDemo == "true") 
THEN 
<tr> 
    <td id="tdDemoSection" colspan="2" align="left" valign="top"> 
     <.....> 
    </td> 
</tr> 
ENDIF 

Кто-нибудь знает, что мы можем написать такую ​​условную логику в .aspx разметки? Пожалуйста, помогите !!!

EDIT:

Раздел I прячусь или показывать некоторые данные, такие как имя пользователя и пароль. Поэтому я не хочу, чтобы пользователь использовал Firebug или Web Developer Tools, чтобы увидеть скрытую разметку. разметка не должна идти на клиентскую сторону.

ответ

22

Синтаксис что-то подобное был бы

<% if(System.Configuration.ConfigurationManager.AppSettings["IsDemo"] == "true") %> 
<% { %> 
<!-- Protected HTML goes here --> 
<% } %> 

Предполагается, что страница находится на C#.

Вы можете установить этот код, защитив его от восстановления AppSettings, например. что происходит в том случае, когда значение равно нулю и т.д.

+0

Спасибо. Сделал несколько изменений в вашем коде и добавил фрагмент ниже, который работал для меня. –

2

Если я правильно понимаю, вы не хотите использовать серверную часть (компоненты aspx с атрибутом runat = "server") и просто хотите контролировать отображение html на странице aspx, а затем попробовать это решение.

Создать свойство в отделенном коде файл (или еще лучше в каком-либо другой конфигурации вспомогательного класса):

//IN C# (OR VB) file 
protected string Demo{ 
    get{ 
      return ConfigurationManager.AppSettings["IsDemo"]=="true"? 
        "none":"block"; 
     } 
} 

В ASPX странице:

<tr style="display:<%= Demo%>;"> 
    <td>blah blah</td> 
</tr> 
+0

Раздел I прячусь или показывать некоторые данные, такие как имя пользователя и пароль. Поэтому я не хочу, чтобы пользователь использовал Firebug или Web Developer Tools, чтобы увидеть скрытую разметку. разметка не должна идти на клиентскую сторону. –

+1

Почему, черт возьми, вы ставите имена пользователей и пароль на странице? – TheVillageIdiot

+0

Да. Ваш вопрос действителен. :) Я задал такой же вопрос своему клиенту. Но на самом деле это не пароль, а код доступа, который используется несколькими пользователями. –

5

Решение: -

<% If (ConfigurationManager.AppSettings("IsDemo").ToLower().Equals("true")) Then%> 
    <tr> 
     <.....> 
    </tr> 
<% Else%> 
    <tr> 
     <.....> 
    </tr> 
<% End If%> 
+0

Вопрос помечен C#, это выглядит как VB.NET. – Neolisk