从经典ASP转换为ASP.NET

时间:2009-03-30 13:09:07

标签: asp-classic migration

我必须将一些代码从经典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 个答案:

答案 0 :(得分:2)

如果您使用.net 2.0查看可以绑定到数据源的asp:repeater,如果您使用.net 3.5查看asp:listview。这些控件使您能够迭代数据并生成标记,这基本上就是您的操作。

答案 1 :(得分:2)

ASP.net处理几个&lt; %%&gt;之间的代码分割标签就好了。问题出在其他地方。请编辑您的问题以包含错误消息。

答案 2 :(得分:1)

您始终可以使用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

您始终可以在<%# ... %>文本中插入条件逻辑。或者,如果逻辑很复杂,您可以在代码隐藏文件中对它们进行编码,并从此处调用它们。

搜索“如果在ItemTemplate内部的ASP.NET”或“ItemTemplate中的ASP.NET条件”以获取更多信息。