ASP.Net Web形成了替换Literal控件中文本的最佳实践

时间:2011-04-20 19:29:12

标签: asp.net webforms literals

这是一个简单的问题,我正在寻找你的意见。

我正在寻找从文字控件中后面的代码中替换一段文本的最佳实践。

aspx标记看起来像这样,我正在替换它显示为{0}的链接中的值:

<asp:Literal runat="server" ID="litViewLightingCollections" Visible="false">
    <span class="disclaimer">
        <div style="padding-bottom:5px;">
            <a href="/LightingCollections/{0}/default.aspx" >
                <img src="/images/productdetail/elements/icon-lighting-collections.gif" border="0" align="absmiddle"> Lighting Collections
            </a>
        </div>
    </span>
</asp:Literal>

所以我在测试中调用string.format所做的工作正常:

litViewLightingCollections.Visible = true;
litViewLightingCollections.Text = String.Format(litViewLightingCollections.Text, lightingDictionary[category]);

这样可以正常工作,但还有其他方法可以做到这一点。 什么是最好和最轻量级的方法?

  • 我可以在href标签中设置另一个文字控件并设置它的值
  • 我可以像{replaceme}一样在文本中创建一个占位符,并在lit.text上调用String.Replace
  • 在后面的代码中放置一个属性并使用&lt;%= Property%&gt; (我真的不喜欢这个,因为它在页面上创建了很多属性)
  • 在文字中放置超链接控件(与轻量级相比)
  • 还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试做的只是替换href,则没有理由使用文字。控制的一个重点是它们允许采用更加编程的方式来设置值。解决此问题的一种方法是用link button替换,并在链接按钮的onload上设置后面代码中的href。另一种解决方案是使用旧式asp标签&lt;%=%&gt;并让服务器代码自动替换所需的部分。