2016-07-29 20 views
0

在我看來,我有類似如下的@在查看Url.Action有時不能正常工作

<img src="@Url.Action("GetImage", new {param1 = ViewBag.Param1, page = ViewBag.Page })" alt="" /> 

這工作一些時間。但是,時不時裝載圖像。我在GetImage ActionResult中設置了一個斷點,當圖像沒有加載時,斷點沒有被擊中。

這種行爲似乎是完全隨機的,如果我只是一遍又一遍地刷新頁面有時它有時它不起作用。任何想法或建議?

+0

請顯示你的代碼並解釋你想問什麼? –

+0

對不起,代碼沒有顯示。希望這個問題現在應該是自我解釋。 –

+0

當圖像不呈現時,請檢查頁面的視圖源,並確保圖像源的url有效(參數值)。 – Shyju

回答

0

觀點:

<img src="@Url.Action("GetImage",new {name="google.png"})" alt="" /> 

和控制器動作看起來像下面

[AcceptVerbs(HttpVerbs.Get)] 
public FileResult GetImage(string name) 
{ 
    var path = @"C:\VS2015\Images\" + name; 
    return new FileStreamResult(new FileStream(path,FileMode.Open),"image/jpeg"); 
} 

希望你的控制器動作的代碼看起來像上面。 它會正常工作。

0

(應該是一個評論,但太長...)

開始之前診斷服務器端的問題,找出實際的問題是什麼。

打開瀏覽器開發工具(F12贏),切換到網絡選項卡並保持刷新,直到出現問題。 (注意:當開發工具打開時,有一項設置可以禁用瀏覽器緩存,請確保取消選中它以準確複製情況)

當問題發生時,向下滾動到圖像請求並檢查ti是否爲從服務器或本地緩存中獲取。如果來自服務器,應該有一個狀態代碼給你一個提示(404/500),響應主體可以包含有用的信息(如果你的服務器被配置爲顯示錯誤,那麼就像一個完整的堆棧跟蹤)。至少,服務器響應意味着已建立連接,並且服務器日誌中應該有一些有用的信息。

這也可能是問題與瀏覽器緩存或客戶端和服務器之間的代理。

最後,如果它是服務器端的問題,並且在瀏覽器中看不到錯誤詳細信息,請通過服務器事件日誌查找錯誤。所有.Net錯誤都記錄在那裏(至少默認)。

一旦您獲得了更多關於導致問題的信息,請編輯您的問題,我們可以從那裏開始。