我在下面尝试了两个片段。没有。我试过<%#,<%=和<%。没有。所以我被卡住了。
<div style="background-color:Gray; color:white; text-align:center; width:100%;">
<asp:HyperLink ID="HyperLink1" Target="_blank" NavigateUrl='<%= Server.HtmlEncode(String.Format("~/ShowHistory.aspx?section={0}&jobnumber={1}", "APQP Header", "101244")) %>' runat="server">Show Updated History</asp:HyperLink>
<asp:HyperLink Target="_blank" NavigateUrl="~/ShowDeletedHistory.aspx" ID="HyperLink2" runat="server">Show Deleted History</asp:HyperLink></div>
<br />
<div style="background-color:Gray; color:white; text-align:center; width:100%;">
<asp:HyperLink ID="HyperLink1" Target="_blank" NavigateUrl='<%= String.Format("~/ShowHistory.aspx?section={0}&jobnumber={1}", "APQP Header", "101244") %>' runat="server">Show Updated History</asp:HyperLink>
<asp:HyperLink Target="_blank" NavigateUrl="~/ShowDeletedHistory.aspx" ID="HyperLink2" runat="server">Show Deleted History</asp:HyperLink></div>
<br />
答案 0 :(得分:2)
尝试<%# ... %>
并在页面加载时致电this.DataBind()
(或Me.DataBind()
)。
答案 1 :(得分:0)
服务器控件不能包含此类型的标记。原因是“&lt;%=%&gt;”是basically equal to Response.Write,它本身在页面经过其生命周期后执行,此时已经构建了响应。如果在设置服务器端控件属性的值时使用它,则必须在解析页面标记时(或稍后)解析此值。这就是你不能使用“&lt;%=%&gt;”的原因在服务器控件中。
如果它是普通的html标签,它会起作用,但虚拟URL不会。
您是否有理由不在代码中设置NavigationUrl?它对我来说会更好看。