如果MvC View中不存在源,如何显示默认图像

时间:2015-05-28 11:39:54

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

我在loginpartial.cshtml文件中有以下代码
如果src不存在,有没有人可以建议显示默认图像?

@if (Request.IsAuthenticated)
{   

    <li><a href="#">Support</a></li>
    <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">



        //in below image tab m Display user Uploaded image ,
        //wants to display default Image if no Image is present

        <img src="/user/RetrievePhoto/@ABC.Web.Session.LoginData.UserToken.UserId" alt="" class="profilePhotoSM" />@ABC.Web.Session.LoginData.UserToken.UserName <span class="caret"></span></a>
        <ul class="dropdown-menu">
            <li>@using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm" }))
                {
                @Html.AntiForgeryToken()
                <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
                }</li>
        </ul>
    </li>


}
else
{

    <li>@Html.ActionLink("Sign Up", "Register", "User", routeValues: null, htmlAttributes: new { id = "registerLink", @class = "navLink" })</li>
    <li>@Html.ActionLink("Login", "Authentication", "Account", routeValues: null, htmlAttributes: new { id = "loginLink", @class = "navLink" })</li>

}

1 个答案:

答案 0 :(得分:3)

向您的网络服务器添加默认图片,即myDefaultImage.png。 在您的模型中添加ImageNamePhoto属性,即

public class AModel
{
   public string ImageName { get; set; }
   public string Photo { get { return ImageName == null ? "myDefaultImage.png" : ImageName; }}
}

如果图像存在,请从控制器设置ImageName属性。如果未设置,Photo属性中的get将处理默认图像。

然后您可以按如下方式显示src:

src="/user/RetrievePhoto/@Model.Photo"