Преобразование из классического ASP в ASP.NET - PullRequest
1 голос
/ 30 марта 2009

Мне нужно конвертировать код из классического ASP в ASP.NET

1) Как мне лучше всего обрабатывать синтаксис, как показано ниже, где он кажется неудачным, потому что код находится внутри тега, а также, возможно, потому что условие разбито на несколько тегов.

2) Какие-либо инструменты или рекомендации, которые хороши для такого рода кода?

3) Классический ADO.

    <li><a<% if "" = myFolder then %> class="selected"<% end if %> href="http://<%= SERVER_NAME %>/"><%= getLocale("Home") %></a></li>
            <% SQL = "SP_TOPNAV  '" & lang & "'"
            Set maNav = conn.execute(SQL)
            do while not maNav.EOF %>
                <li><a<% if maNav(0) = myFolder then %> class="selected"<% end if %> href="http://<%= SERVER_NAME %>/<%= maNav(0) %>"><%= maNav(1) %></a></li>
            <% maNav.MoveNext
            loop
            Set maNav = Nothing %>
            </ul>

Ответы [ 3 ]

2 голосов
/ 30 марта 2009

ASP.net прекрасно обрабатывает код, разделенный между несколькими тегами <%%>. Проблема лежит в другом месте. Пожалуйста, отредактируйте свой вопрос, включив в него сообщение об ошибке.

2 голосов
/ 30 марта 2009

Если вы используете .net 2.0, посмотрите на ретранслятор asp:, который может связываться с источником данных, если вы используете .net 3.5, посмотрите на asp: listview. Эти элементы управления дают вам возможность перебирать данные и генерировать разметку, которая, по сути, является тем, что вы делаете.

1 голос
/ 30 марта 2009

Вы всегда можете использовать элементы управления данными ASP.NET, такие как Repeater, GridView, DataList, для отображения коллекций элементов. И вы можете настроить их внешний вид, изменив ItemTemplate. Вы также можете включить условный рендеринг внутри ItemTemplate.

Например:

   <asp:Repeater id="Repeater1" runat="server">

      <HeaderTemplate>
         <table border="1">
      </HeaderTemplate>

      <ItemTemplate>
         <tr>
            <td> <%# Container.DataItem %> </td>
         </tr>
      </ItemTemplate>

      <FooterTemplate>
         </table>
      </FooterTemplate>

   </asp:Repeater>

Взято из: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemtemplate.aspx

Вы всегда можете вставить условную логику в текст <%# ... %>. Или, если логика сложная, вы можете закодировать их в коде файла и вызвать их отсюда.

Для получения дополнительной информации ищите "ASP.NET, если внутри ItemTemplate" или "Условие ASP.NET в ItemTemplate".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...