2016-12-31 1 views
1

私は、データベースとテストデータをデータベースに移入したdbinitializerクラスを持っています。私のテーブルの1つの私の列の1つは、イメージへの文字列パスを格納するためのものです。つまり、Image = "〜/ Content/Images/example.img"mvc.netコアのデータベースからイメージをロードする

私のビューモデルは、テーブルの各項目の画像をレンダリングすることになっています。

@foreach (var item in Model) { 
     <img style="width:200px;height:250px;" src="@Url.Content(item.Image)" alt="@item.Name" /> 

} 

この正確な方法は、私の通常のMVCアプリで動作しますが、私は私のコアアプリで正確に同じコードをエミュレートしようとしたときの画像がレンダリングアレント。なぜ誰かがこの問題を抱えているのか知っていますか?

答えて

2

ASP.NETコアでは、静的ファイルはデフォルトでwwwrootフォルダからのみ提供されます。つまり、あなたのルートであるContents/Imagesからファイルにアクセスしようとすると、動作しません。

良いニュースは、静的ファイルの場所を自由に設定できます。したがって、起動時にConfigureメソッドを更新してください。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
                  ILoggerFactory loggerFactory) 
{ 
    // Your existing code goes here 

    app.UseStaticFiles(); 

    app.UseStaticFiles(new StaticFileOptions() 
    { 
     FileProvider = new PhysicalFileProvider(
       Path.Combine(Directory.GetCurrentDirectory(), @"Content/Images")), 
     RequestPath = new PathString("/Images") 
    }); 
} 

は今、これらの画像は今、あなたはこのパスから画像を得るためにあなたのビューのコードを修正することができ、このyourSiteName/Images/imageFile.png

のようにブラウザからアクセスすることができます。コレクション内の各項目についてitem.Image値を仮定し

@foreach (var item in Model) 
{ 
    <div> 
     <img src="@Url.Content("~/Images/"+item.Image)" /> 
    </div> 
} 

このMyImage.pngようないくつかの値を持っており、あなたがMyImage.pngと呼ばれる画像は、アプリケーションのルートにあるContents/Imagesに位置してい(not in the wwwroot directory

また、検討することができますASP.NETチームがこのような目的のためにそのディレクトリ(静的資産)を追加したため、画像をwwwrootディレクトリに移動します。

+0

私はこの記事を作った直後に、wwwrootフォルダを見て、item.Image文字列を変更したことを思い出しましたが、そのパスでは動作しないようです。すなわち:〜/ wwwroot/images/cardImages。 私が気付いていない他の微妙なニュアンスがあると思いますか? – tocoolforscool

+0

cssファイルとそれ以外のものはすべてこのデフォルトのルートフォルダにありますので、Coreの表記規則を使いたいと思います。私は、あなたが私のプロジェクトを移行しようとしているので、私はコアを使うべきだと仲間からアドバイスされました – tocoolforscool

+0

あなたのイメージが 'wwwroot'ディレクトリの中にある場合、GETリクエスト(単にブラウザ内のリソースにアクセスしようとする)。これはasp.netコアがその場所から静的なファイルを提供できるためです。 Contentフォルダ(pre asp.net core appsスタイルのようなアプリのルートにある)にこれらのイメージがある場合は、 'Configure'メソッドの更新を行う必要があります。 – Shyju

関連する問題