0

我有一个个人资料照片的占位符。我希望它从数据库中获取个人资料图片(这工作正常)<img src="@Url.Action("Thumbnail", "Photo", new { id = Model.Mebrief.myGuid, size = "small" })" alt="@Model.UserName" width="150" height="150"/>。问题:如果没有个人资料图片,它应该获得位于此处的默认占位符图片:

<img src="@Url.Content("~/Content/profile-template/img/friend_avatar_default.jpg")" alt="crazy" width="150" height="150"/>

所有这些都应该显示在下面的 div 中:

<div id="profile">   </div>

注意:我使用的是.cshtml razer页面。

4

2 回答 2

0

下面不是一个有效的剃刀语法,而只是一个想法 - 使用三元运算符

if true ? new image : default image

型号!= null

?
img src="@Url.Action("Thumbnail", "Photo", new { id = Model.Mebrief.myGuid, size = "small" })" alt="@Model.UserName" width="150" height= "150"/>"

img src="@Url.Content("~/Content/profile-template/img/friend_avatar_default.jpg")" alt="crazy" width="150" height="150"/>

于 2012-06-08T14:03:58.730 回答
0

你可以在你的控制器中尝试这样的事情。

 public ActionResult Photo(int photoId)
    {
        MyPhoto photo = null;
        try
        {
            MyPhoto = db.GetMyPhotoById(photoId);
            return new FileStreamResult(new MemoryStream(photo.Image), photo.ImageMimeType);
        }
        catch (Exception ex)
        {
            //use the default image
            return new FilePathResult(Url.Content("~/Content/profile-template/img/friend_avatar_default.jpg"), "image/jpg");
        }
    }

查看您在控制器中所做的事情会很有帮助,但我猜您正在从从数据库返回的字节中返回 FileStreamResult。

希望这可以帮助。

于 2012-06-08T14:06:07.640 回答