2011-01-02 7 views
0

新しい年。コントローラからズームライブラリが動作しない

私はhttp://www.dfc-e.com/metiers/multimedia/opensource/jquery-fancyzoom/を使用しています。サムネイル画像をクリックしてクリックしたサムネイル画像の上にオーバーレイとして表示されるより大きなバージョンを見ることができます。私はclose.pngボタンを使って画像を閉じることができます。 )

public ActionResult GetLargeImage(int id) 
    { 
     byte[] imageData = repository.GetLargeImage(id);; 
     return File(imageData, "image/jpeg"); 
    } 

と私のGetThumbNailアクションは非常に似ており、リターンは(ファイル:私は私のコントローラで今

<% var url-small = Url.Action("GetThumbNail", new {id = item.ID });%> 
<% var url-large = Url.Action("GetLargeImage", new {id = item.ID });%> 

      <a href="<%: url-large %>"> 
       <img src="<%: url-small %>" alt="" height="50" width="50"/> 
      </a> 

使用されるHTMLコードです。これは正常に動作し、サムネイルを表示します。

サムネイル画像をクリックすると、「GetLargeImage」というアクションが実行され、画像が新しいページに表示されます。 url-largeを "images/testimage.jpg"のようなものに置き換えた場合、サムネイル画像をクリックすると、正しい動作が表示され、testImage.jpgがオーバーレイ(ズームしたバージョン)として表示されますページ。

コントローラを使用しているため、大きな画像がオーバーレイとして表示されずに新しいページに表示されているようです。

これは何が起こっているのですか?

JD

答えて

0

私の最初の推測では、これはあなたのズームライブラリがオーバーレイとして、それを表示しない作り、ヘッダの問題であるということです。静的に提供されたイメージとコントローラから提供されたイメージのヘッダーの違いを確認します。

あなたはなど、正しいヘッダーを追加するカスタムImageResultクラスを作成する必要がある場合があります

+0

こんにちは、私が見つけたヘッダーは、コンテンツタイプ "application/octet-stream"で応答があるように見えるだけでなく、httpリクエストが "close.png"に対して行われているようです。しかし、それが動作していない場合、Content-typeはimage/jpegです。また、動作していないときのリクエストには、\t text/html、application/xhtml + xml、application/xml; q = 0.9、*/*; q = 0.8があります。画像/ png、画像/ *; q = 0.8、*/*; q = 0.5。私は "application/content-stream"を返そうとしましたが、アクションによってファイルが保存されます。 –

0

あなたは、C#で変数名としてurl-smallurl-largeを持つことはできません(変数が-を含めることはできません)ので、私はあなたの実際のコードは何ではないと思いますこれまでに示したとおりです:

<a href="<%: Url.Action("GetLargeImage", new { id = item.ID }) %>"> 
    <img src="Url.Action("GetThumbNail", new { id = item.ID })" alt="" height="50" width="50"/> 
</a> 

また、プラグインが正しく適用されていることを確認してください。

+0

こんにちはダーリン、申し訳ありませんが、私は変数名を書いたので、私はその質問を書いたとおりに読みやすくなっています。私がFirebugで見ることができるjavascriptエラーはありません。ライブラリにたどり着くことは可能ですか?私がトレースするときに私が見るのは、インデントのない1つの大きな行のコードであり、それは追跡が困難です。 –