ASP.NET标记不会在OnClientClick中扩展

时间:2013-04-03 16:56:17

标签: asp.net webforms

我有以下两个按钮:

<asp:Button ID="btnVote" runat="server" Text="Vote!" PostBackUrl="<%$RouteUrl:id=2, routename=Results%>"/><br />
<asp:Button ID="btnResults" runat="server" Text="Results ->" OnClientClick="location.href='<%$RouteUrl:id=2, routename=Results%>'"/>

第一个<%$ %>按预期扩展,而第二个(相同!)一个用作打字(=未展开)。我是来自ASP.NET的{​​{1}}的新手,这来自我的学习/测试网站。
我做错了什么,我该如何解决?

1 个答案:

答案 0 :(得分:2)

ASP.NET表达式语法(<%$ ... %>)只能用于直接为服务器控件的属性赋值。我认为您遇到的问题是表达式语法嵌入在字符串中,而不是直接绑定到“OnClientClick”属性。

尝试将第二个按钮更改为

<asp:Button ID="btnResults" runat="server" Text="Results ->" OnClientClick="<%$RouteUrl:id=2, routename=Results%>" />

如果可行,您可能需要修改表达式以返回所需的额外文本。或者,创建另一个返回所述信息的路径(包含在“location.href”属性中的当前值)。

您可以在此处找到有关这些表达的更多信息:ASP.NET Expressions Overview