在图像asp.net MVC3之间切换

时间:2012-06-08 13:44:44

标签: asp.net-mvc-3 image razor src user-profile

我有一张个人资料照片的占位符。我想让它从数据库中获取个人资料图片(这可以正常工作)<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 页面。

2 个答案:

答案 0 :(得分: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”/&gt;“中

img src =“@ Url.Content(”〜/ Content / profile-template / img / friend_avatar_default.jpg“)”alt =“crazy”width =“150”height =“150”/&gt;

答案 1 :(得分: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。

希望这有帮助。