2014-05-13 76 views
0

我是一個ASP.NET MVC的初學者,我試圖用一個if語句在asp.net MVC網站中用剃刀設置圖像的src。asp.net razor如果語法

此代碼的工作:

<img src="@Url.Action("GetPersonPhoto", "Home", new RouteValueDictionary(new { cardid = "696969" }))" /> 

我想補充:

@if(Model.HavePhoto) 

和SRC設置爲:

"~/Content/images/header-logo.png" 

如果HavePhoto是假的......

我該怎麼做?

+0

RT(F)M。好吧,要認真......谷歌的任何例子。圖像源本身不應該是你的cshtml頁面內的IMO,而是決定在控制器中,並存儲在模型中src =「@ Model.PhotoUrl」 –

+0

我將有'GetPersonPhoto'動作決定使用哪個圖像並處理'Model.HavePhoto '是錯誤的,提供一個默認圖像的url,反對在視圖層中處理這個 – MilkyWayJoe

+0

請參閱http://stackoverflow.com/questions/9399531/asp-net-mvc-razor-conditional-attribute-in-html和幾個選項http://stackoverflow.com/questions/8061647/conditional-html-attributes-using-razor-mvc3,你也可以只有兩個不同的'img'標籤,一個在if和另一個在其他地方每種情況 – AaronLS

回答

2
var source= "~/Content/images/header-logo.png"; 
    @if(Model.HavePhoto) 
    { 
     source= Url.Action("GetPersonPhoto", "Home", 
        new RouteValueDictionary(new { cardid = "696969" })) 
    } 

    <img src="@source" /> 
+0

根據上下文,您可能需要包裝變量聲明'@ {var source =「〜/ Content/images/header-logo.png」; }' – AaronLS

+0

謝謝。我有一個空引用異常「@if(Model.HavePhoto)」,否則你的解決方案似乎工作。 – Gab