我在ASP页面中有这个代码:
<%@ Register TagPrefix="genies" Namespace="TheNamespace" Assembly="TheAssembly"%>
...
<% string name = GetTag().Name; %>
<div class="<%= name %>"></div>
<genies:BarGenie ID="BarGenie1" runat="server" Title="<%= name %>" />
BarGenie类具有以下代码:
public class BarGenie : Control {
public string Title { get; set; }
protected override void Render(HtmlTextWriter writer) {
writer.Write("<div>" + Title + "</div>");
}
}
这是生成的HTML:
<div class="E00383"></div>
<div><%= name %></div>
我想看看这个HTML:
<div class="E00383"></div>
<div>E00383</div>
我在ASPX代码中尝试过各种各样的东西:@ name,&lt;%#name%&gt;等但我无法弄清楚发生了什么。是否有其他方法插入我应该使用的自定义控件?我使用此自定义控件的方法是否错误?
答案 0 :(得分:3)
尝试使用GetTag()。名称而不是名称。
同时查看http://www.scottfindlater.co.uk/blog/asp-net-inline-code-and可能会有所帮助
在
中<div class="<%= GetTag().Name%>"></div>
<genies:BarGenie ID="BarGenie1" runat="server" Title="<%= GetTag().Name%>" />
答案 1 :(得分:1)
尝试使用<%= %>
替换<%# %>
代码并在代码隐藏中添加对this.DataBind();
的调用。
答案 2 :(得分:1)
如何在代码隐藏中设置该值:
this.BarGenie1.Title = GetTag().Name;