2014-05-13 43 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