ASP.NET:如何将<A>或HtmlAnchor转换为静态文本?

Ian*_*oyd 4 html asp.net

我有一个转发器,将输出一系列项目:

<asp:repeater ... runat="Server">
   <itemtemplate>
      <a href="<%# GetItemLink(...) %>"><%# GetItemText %></a>
   <itemtemplate>
<asp:repeater>
Run Code Online (Sandbox Code Playgroud)

但是有些项目没有相关的链接,所以我不希望它们是可点击的.我尝试制作它runat=server HtmlAnchor,并设置htmlAnchor.Disabled = true为物品不应该实际上有一个链接 - 但它们仍然可以被点击(它只是使文本灰色)

我知道在过去的日子里我是怎么做到的:

<% If IsLink Then %>
   <A href="<% =GetItemLink%">
<% End If %>
   <% =GetItemText %>
<% If IsLink Then %>
   </A>
<% End If %>
Run Code Online (Sandbox Code Playgroud)

但那是凌乱的混合代码和HTML ASP方式.什么是ASP.NET方式?

Joe*_*orn 10

使用<asp:HyperLink>控件,如果没有提供链接,则会正常显示文本.


编辑包括示例:

<asp:repeater ... runat="Server">
   <itemtemplate>
      <asp:HyperLink ... runat="server" NavigateUrl="<%# GetItemLink(...) %>"> <%# GetItemText %></asp:HyperLink>
   <itemtemplate>
<asp:repeater>
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,锚标记将被渲染为html,但是如果NavigateUrl属性是一个空字符串,那么根本就没有href,我用过的每个浏览器都会以类似于跨度的方式呈现文本(所以在<a>上查找自定义样式.