dポイントプレゼントキャンペーン実施中!

大変お世話になっております。

現在別ウィンドウを開くのに
ClientScript.RegisterStartupScript(Me.GetType, "OpenNewWindow", "<script language=""javascript"">window.open('URLを指定', 'TARGET');</script>")
を使用しております。

ですが上記の場合だとjavascriptの為、ASP.Net で使用できる ~(チルダ)が使用できず、ルート表示ができません。

Response.Redirectで記述すると、ターゲットが指定できず、ウィンドウを上書きする形になってしまいます。

足して2で割れればいいのですが、javascriptで ~(チルダ)のようなルート指定ができる方法、もしくは、Response.Redirectでターゲットが指定できる方法など、もしあるようでしたら、お教えいただけますよう、何卒ご教授くださいませ。

上級者の方は、このジレンマをどのように克服されているのか是非ともお教えくださいませ。

A 回答 (3件)

Response.Redirect は、ブラウザに HTTP のステータスコード 302(だったはず)を返すものです。


このとき、遷移先のURLを指定することしかできません。
ブラウザ側もそれ以上のことはできないです。

ASP.NETとはいってもブラウザを使う以上、基本はHTTPおよびHTMLです。
そこでできる以上のことはできません。
自分が実装したコードはHTTPやHTMLだとどうなるのか、という観点から考えると、できること
できないことがはっきりしますし、なぜできないかという部分も理解できるかと思います。
    • good
    • 0
この回答へのお礼

onosさん 大変お世話になります。

HTTP、HTMLともに、まだまだ浅はかな知識しか持ち合わせておらず、以後、同時に勉強していきたいと思っております。

今回は大変勉強になりました。
ありがとうございました。

お礼日時:2012/11/12 19:21

window.openで、 Request.ApplicationPath + 飛び先ページ を指定する

    • good
    • 0

本質的な問題はなんでしょう。



自分の経験から判断すると、開発環境だとルートが「localhost:ポート/プロジェクト名/」とか
なのに、本番環境は「本番ドメイン名/」だったりすることが多く、この違いをうまく吸収したい
ということかな、と思うのですが。。。

もしそういうことなら、やりようはいろいろあると思うのですが、単純な方法としては
ルートを指定する文字列を設定ファイル内に記述しておいて、Windows.Openの中の
'URLを指定'のところは上記設定してある文字列+ウィンドウに表示したいファイル名
とかに変えてしまうことかな、と思います。
開発環境と本番環境用の設定ファイルをきちんときりわけて利用すればそれでいけるかと。

この回答への補足

onosさん いつもお答えいただき大変恐縮しております。

ご指摘どおり、開発環境と本番環境での違いの吸収をどういう形でやるということが一番の問題でした。
おっしゃるとおり、開発環境と本番環境で設定ファイルを切り分ける方法がありました。
ご指摘の柔軟性を以後忘れないようにしたいと思います。

しかし、やはり2つの方法の良いとこ取りはできないんでしょうかね;;
Response.Redirect にターゲットを指定できれば、一番良いんですが;;

補足日時:2012/11/12 17:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A