2012-02-03 54 views
0

一度ボタンをクリックすると、画像1が画像を表示します。画像ボタンが表示されない画像

私は

Server.MapPath("~/SME IMAGE/anonymous_avatar.gif"); 

に私のIMAGEPATHを設定したときに、私のurlは

に動作しないが、私は

ので、基本的に

"~/SME IMAGE/anonymous_avatar.gif" 

私のURLの仕事に私のパスを設定したときに何が起こります私のServer.MapPathに?

Image1.ImageUrl = "~/SME IMAGE/anonymous_avatar.gif"; 

は多分、URLが存在することを確認し、そして多分パスにスペースの代わりに%20を追加します。ちょうど使用 -

try 
    { 

     string imagePath = Server.MapPath("~/SME IMAGE/anonymous_avatar.gif"); 
     Image1.ImageUrl = imagePath; 
     Response.Write("success"); 
    } 
    catch (Exception ex) 
    { 
     Response.Write(ex.Message.ToString()); 
    } 
+0

(ブラウザで)レンダリングされたページに2つのURLの違いは何ですか? – Niklas

+0

@Niklas、私は彼らが違うと思う、その差をチェックする方法は何ですか? –

答えて

0

Server.MapPath(また、パスにスペースを避けるようにしてください)。
だからServer.MapPath("Server.MapPath")あなたのファイルのローカルの場所が表示されます。
あなたはImageUrlプロパティにこれを割り当てているが、これは、Webサーバー上の指定した仮想パスに対応し物理ファイルパスを返しますServer.MapPath"www.mywebsite.com/C:\wwwroot\somefile.gif"

+1

oic、thanksあなたの答え=) –

+0

runat = "server"でこのようにジャンプして申し訳ありません。あなたの質問が間違っています –

0

Server.MapPathを設定しないようにしてください。それはあなたのローカルパスに「ウェブ」のパスを変換

+0

答えてくれてありがとう、私はそれがServer.MapPath =( –

+0

)を使用することができないことだけに不思議です。Server.MapPathは、Webサーバー上の指定された仮想パスに対応する物理ファイルパスを返します: – janhartmann

0

のようなものに変換されます。あなたは

string imagePath = Server.MapPath("~/SME IMAGE/anonymous_avatar.gif"); 

を設定するときだから、実際にはファイルへの物理パスですC:\Inetpub\wwwroot\website\SME IMAGE\anonymous_avatar.gifのようなものを返すことができます。

Image.ImageUrlプロパティはImageコントロールに表示する画像のURLを受け付けます。相対URLまたは絶対URLを使用できます。 MSDNは言う:

相対URLは、サーバー上の完全なパスを指定せずに Webページの場所に画像の位置を関します。 のパスは、Webページの場所からの相対パスです。これにより、 は、 コードを更新することなく、サイト全体をサーバー上の別のディレクトリに移動しやすくなります。絶対URLは完全なパスを提供するので、 サイトを別のディレクトリに移動するには、 コードを更新する必要があります。

+0

これはとてもクリアです! –

関連する問題