2

我有以下两个按钮:

<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,来自PHP,这是来自我的学习/测试站点。
我做错了什么,我该如何解决?

4

1 回答 1

2

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

尝试将第二个按钮更改为

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

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

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

于 2013-04-03T17:10:44.913 回答