2

次の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%>'"/>

1つ目<%$ %>は意図したとおりに展開されますが、2 つ目 (まったく同じです!) は入力されたものとして使用されます ( = 展開されません)。私は にとても慣れていませんASP.NET。 から来ましたPHP。これは私の学習/テスト サイトからのものです。
私は何を間違っていますか?どうすれば修正できますか?

4

1 に答える 1

2

ASP.NET 式の構文 ( <%$ ... %>) は、サーバー コントロールのプロパティに値を直接割り当てる場合にのみ使用できます。あなたが抱えている問題は、式の構文が文字列内に埋め込まれており、「OnClientClick」属性に直接バインドされていないことだと思います。

2番目のボタンをに変更しようとしています

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

それが機能する場合は、必要な追加のテキストを返すように式を変更する必要がある場合があります。または、上記の情報 (「location.href」属性にラップされた現在の値) を返す別のルートを作成します。

これらの式の詳細については、ASP.NET 式の概要を参照してください。

于 2013-04-03T17:10:44.913 に答える