2

リダイレクト ロジックで動作する支払いプラグインを開発しました。Paypal標準とMyGateVirtualをガイドとして使用しました。私の問題は、ユーザーが注文を確認した後、クレジットカードデータを入力するペイセンターサイトにリダイレクトされ、ペイセンターサイトが指定されたURLで当社のサイトに戻って成功と失敗を確認することです.私の支払いコントローラーの成功アクション。何らかの理由で支払いが受け入れられなかった場合、ユーザーを orderdetails にリダイレクトして、支払いを再送信できるようにしたいと考えています。ユーザーを orderdetails にリダイレクトすることになっているボタンに、次のコードフラグメントを含むビューを使用します

@{ var storeLocation = Nop.Core.Infrastructure.EngineContext.Current.Resolve<Nop.Core.IWebHelper>().GetStoreLocation() + Url.RouteUrl("OrderDetails", new {orderId = Model.OrderId});}


<input type="button" name="orderdetails" value="@T("Account.CustomerOrders.OrderDetails")" id="orderdetails" class="orderdetailsbutton" onclick="setLocation('@(storeLocation)'" />

しかし、ユーザーがボタンをクリックしても何も起こりません。onclick イベント ハンドラーが orderdetails にリダイレクトされません。この問題について助けてください

ジョージ

4

1 に答える 1

4

setLocation()は、public.common.jsで定義されているJS関数です。問題を診断するには、次の手順を実行します。

  1. public.common.jsがページに適切に含まれているかどうかを確認してください。
  2. 'storeLocation'変数が正しいURLを生成しているかどうかを確認してください。すでに自分のサイトにいるので、実際には前の部分は必要ありません。「Url.RouteUrl」で始まる部分だけで十分です。
  3. ブラウザの開発者ツールでブレークポイントを設定し、setLocationが適切に呼び出されているかどうかを確認し、呼び出されていない場合のエラーを確認します。

コードを詳しく見ると、JSコードは整形式ではないことがわかります(括弧が1つ少ない)。

これはあなたのコードです:

setLocation('@(storeLocation)'
于 2013-03-19T06:24:39.517 に答える