2016-08-02 106 views
0

在我創建的網站中,我試圖將上傳圖像的URL存儲到我的模型中,然後在視圖中調用它。所以當我輸入HTML源文件路徑時,它工作正常。Razor .cshtml視圖文件中的圖像文件路徑

<dd><img src="~/uploads/image.jpg" alt="ASP.NET" style="width:350px;height:260px" /> 
    </dd> 

但是,如果我嘗試從模型調用,URL會搞砸。

@string imagePath = "~/uploads/" + Model.Picture; 

<dd><img [email protected] alt="ASP.NET" style="width:350px;height:260px" /> 
    </dd> 

該代碼鏈接到「http://localhost:60847/Controller/Details/~/uploads/image.jpg」。有人可以向我解釋爲什麼它的工作方式不同嗎?謝謝。

回答

1

您缺少src屬性值的引號。還請確保使用Url.Content輔助方法來獲取正確的路徑。您可以將"~"傳遞給此方法以獲取到您的應用程序根目錄的正確路徑。

@{ string imagePath = Url.Content("~/uploads/" + Model.Picture); }; 
<img src="@imagePath" alt="ASP.NET" style="width:350px;height:260px" /> 

或者即使沒有變

<img src="@Url.Content("~/uploads/" + Model.Picture)" /> 
+0

的好幫手Url.Content固定的,單一的襯墊,謝謝。我嘗試過使用和不使用src屬性值的引號,並且都使用了Url.Content助手。 –

+0

你應該使用引號。如果你的'Model.Picture'值有一個空格呢?如果您沒有引號,您的代碼將會中斷。 – Shyju

+0

好的,即使它是一個字符串數據類型,Razor也不會自動加入引號。 –