2015-09-15 99 views
2

我在我的視圖以下代碼:圖像不與當相同的路徑是硬編碼在視圖HTML輔助返回的相對圖像路徑,但顯示器上顯示

<div class="container"> 
     <div class="row"> 
      @foreach (var item in Model) 
      { 
       <div class="col-lg-3 col-md-4 col-xs-6 thumb"> 
        <a class="thumbnail" href="#"> 
         <div class="caption"> 
          <h4>Thumbnail Headline</h4> 
          <p>@Html.DisplayFor(modelItem => item.ImageCaption)</p> 
         </div> 
         <img class="img-responsive" src="@Html.DisplayFor(modelItem => item.ImageFilePath)" alt=""> 
        </a> 
       </div> 
      } 
     </div> 
    </div> 

@Html.DisplayFor(modelItem => item.ImageFilePath)返回的相對圖像路徑按照以下格式存儲在數據庫中:「〜/ Content/userProfiles/profile01/image.JPG」。

當我的視圖呈現時,我的圖像看起來有一個斷開的鏈接(它不會顯示)。但是,當我對圖像源中的路徑進行硬編碼時,會根據需要顯示它。換句話說,<img class="img-responsive" src="@Html.DisplayFor(modelItem => item.ImageFilePath)" alt="">返回一個斷開的鏈接,其中<img class="img-responsive" src="~/Content/userProfiles/profile01/image.JPG" alt="">顯示圖像。

爲什麼我的圖像沒有使用html助手顯示,即使它返回一個在硬編碼到視圖中時工作的路徑?

+0

嗯......有趣,只是出於好奇心coul你嘗試使用'@ Url.Content',就像這個''看看是否有幫助? – Michael

+0

使用Html.DisplayFor後,您可以檢查生成的HTML源代碼嗎? 是不是它呈現

+0

你能說這個字符串存儲在數據庫中的引號嗎?如果這樣可能是問題 –

回答

1

只需從db路徑開始處刪除tilda(~)即可。

我的意思是改變這種:

~/Content/userProfiles/[email protected]/ZIMG_0825.JPG

這樣:

/內容/的UserProfiles/[email protected]/ZIMG_0825.JPG

+0

謝謝。你能向我解釋爲什麼蒂爾達沒有工作。或者當我應該也不應該使用它。 – Bonga

+0

@Bonga [here](http://stackoverflow.com/q/4563235/1849444)解答了爲什麼它解決頁面上的靜態路徑。但是當你從模型屬性'VirtualPathUtility'獲得路徑時就不要被調用。 –

+0

很酷。非常感謝。 – Bonga