Href链接代码背后

时间:2014-06-17 14:31:19

标签: c# asp.net .net hyperlink

我正在尝试添加一个链接作为Product.Text的一部分,但我在这里可怕的错误,在C-Sharp代码背后执行此操作。

tcProduct.Text = "<div class=\"productname\">" + "<a class=\"productnameLink\" href=\"item.Product.Url\">" + item.Product.Name + "</a>" + "</div>";

反向斜线开始让我感到困惑。而不是普通的超链接,我想我应该使用.NET超链接??

我试过这个,但没有添加超链接;

            HyperLink productNameLink = new HyperLink();
            productNameLink.Text = "<div class=\"productname\">" + item.Product.Name + "</div>"; 
            productNameLink.NavigateUrl = item.Product.Url.ToString();
            productNameLink.CssClass = "prodNameLink";
            tcProduct.Controls.Add(productNameLink);

4 个答案:

答案 0 :(得分:1)

纯字符串格式应该可以解决问题:

tcProduct.Text = string.Format("<div class=\"productname\"><a class=\"productnameLink\" href=\"{0}\">{1}</a></div>", 
    item.Product.Url, item.Product.Name);

但是,你最好使用一个专门用于此类事情的中继器。标记:

<asp:Repeater ID="rptProducts" runat="server">
    <HeaderTemplate><h1>Products</h1></HeaderTemplate>
    <ItemTemplate>
        <div class="productname"><a class="productnameLink" href="<%# Eval("Url") %>"><%# Eval("Name") %></a></div>
    </ItemTemplate>
</asp:Repeater>

在后面的代码中:

rptProducts.DataSource = arrProducts;
rptProducts.DataBind();

arrProducts是您产品的集合。

答案 1 :(得分:1)

我以前做的是ASP Literal。

<asp:Literal ID="Literal2" runat="server"></asp:Literal> 

然后在使用

设置的代码中
Literal2.Text = "<a class='productnameLink' href=" + item.Product.Url + ">" + item.Product.Name + "</a>"

答案 2 :(得分:1)

您可以使用面板控件,该控件呈现为 div

var link = new HyperLink
{
    Text = item.Product.Name,
    NavigateUrl = item.Product.Url.ToString(),
    CssClass = "prodNameLink"
};
var panel = new Panel
{
    CssClass = "productname"
};
panel.Controls.Add(link);
tcProduct.Controls.Add(panel);

输出:

<div class="productname">
   <a class="prodNameLink" href="http://www.google.com">Google</a>
</div>

答案 3 :(得分:0)

Text属性应该只是文本 有很多方法可以做你需要的,但如果你想坚持使用html字符串,你可以使用:

tcProduct.Controls.Add(new HtmlGenericControl
        {
            InnerHtml = string.Format(@"<div class=""productname""><a class=""productnameLink"" href=""{0}"">{1}</a></div>", item.Product.Url, item.Product.Name )
        });

Bonus,你可以用averbatim字符串文字摆脱'\'转义字符:@“”(你需要加倍引号)。