2017-10-07 7 views
0

javascript:location.replaceをHyperlink.NavigateUrlとともに使用すると、完全に動作します。javascript:location.replace with response.redirect

例えば、これは素晴らしい作品が:

HyperLinks.NavigateUrl = "javascript:location.replace('step3.aspx?Time=" + i + "');"; 

これは全く動作しません:

Response.Redirect("javascript:location.replace('step3.aspx?Time=" + i + "'); return false;"); 

ただ単にそれ自体にポストバックまたは何もしないように見えます。

私は正しい構文を使用する必要がありますか、それとも代替手段がありますか?

+0

+0

私はaspで起動しています:ボタンをクリックします。クリックすると、SQLデータベースの更新を行い、電子メールを送信して、完了したら別のページにリダイレクトします。すべてのコードの背後に厳密asp.net。 – smdevivo

+0

同じことを実行してSQLを更新し、その後、データの更新と結果の選択だけをリフレッシュせずに応答を取得したい場合は、応答として投稿およびデータを取得するには、ajaxを使用する必要があります。 ASP.netのページでは、 "text/json"のヘッダコンテンツタイプとオブジェクトJsonをデータベースリクエストから返すようにする必要があります。 –

答えて

1

ほとんどの場合、Response.Redirectメソッドを使用します。例の構文は次のとおりです。

Response.Redirect(String.Format("step3.aspx?Time={0}", i), false); 

リダイレクト方式の最初のパラメータは絶対または相対URLです。

しかし、Redirectメソッドはブラウザの履歴にエントリを入れ、元のJavaScript location.replace()メソッドには含まれません。

Server.Transfer(string.Format("step3.aspx?Time={0}", i)); 

しかし、この場合は、ブラウザのショーは「step3.aspx」に変更されませんURL:それは重要である場合は、この周りの一つの方法は、Server.Transfer方法を使用することです。どちらが良い選択肢かを判断する必要があります。

関連する問題