2

プロジェクトディレクトリの下にImagesという名前で作成されたフォルダーから画像を表示しようとしています。

star.gifImages フォルダ内にあるものにアクセスしようとしています。

これは、画像にアクセスするための私の小さなコードです

TableCell tc=new TableCell();                  

for (int j = 0; j < i; j++)
{

    System.Web.UI.WebControls.Image rating = new System.Web.UI.WebControls.Image();
    rating.ImageUrl = Server.MapPath("~/Images/star.gif");
    rating.ID = j.ToString();
    rating.AlternateText = "No image";

    tc.Controls.Add(rating);
}

承認も設定しましたweb.configが、役に立ちません。

コードの間違いを教えてください。

4

3 に答える 3

4

Server.MapPathを削除するだけです。この呼び出しは、サーバー上の物理的な場所を返しますが、クライアントからはアクセスできません!

MSDN Server.MapPath

MapPath メソッドは、指定された相対パスまたは仮想パスをサーバー上の対応する物理ディレクトリにマップします。

新しいコード

TableCell tc=new TableCell();  
for (int j = 0; j < i; j++)
{
    System.Web.UI.WebControls.Image rating = new  System.Web.UI.WebControls.Image();
    rating.ImageUrl = "~/Images/star.gif"; // no need for Server.MapPath
    rating.ID = j.ToString();
    rating.AlternateText = "No image";
    tc.Controls.Add(rating);
}
于 2012-09-24T18:50:01.697 に答える
1

Server.MapPathサーバー上のローカルパスを返しますC:\Images\star.gif。お使いのブラウザはその URL を解決できません。

相対 URL を使用するだけです。

rating.ImageUrl = "~/Images/star.gif";
于 2012-09-24T18:51:23.197 に答える
0

ルートから解決されるように runat 属性を追加してみてください。

rating.Attributes.Add("runat", "server");
rating.ImageUrl = "~/Images/star.gif";
于 2012-09-24T18:49:00.903 に答える