如何显示在cshtml中上传的新图像

时间:2013-10-23 12:35:54

标签: asp.net-mvc asp.net-mvc-3 razor

我有这样的图像控制:

<img src="@Url.Action("GetProfileImage", "Controller", new { id = Model.DocId})"

动作

public FileResult GetProfileImage(int id)
{
    var usr = new Whatever();
    byte[] barrImg = usr.GetProfilePhoto(id);
    return File(barrImg, "image/png");
}

我的保存方法是这样的:

function SavePhotoToDb() {
                var json;
                var data;
                $.ajax({
                    type: "POST",
                    url: "/Example/SaveProfilePhoto",
                    data: new FormData($("#form0").get(0)),
                    dataType: "html",
                    contentType: false,
                    processData: false,
                    success: saveItemCompleted(data),
                    error: saveItemFailed
                });
            }

        function saveItemCompleted(data) {
               //showing success notification;
               // what else I have to do here to display the new image
    }

当页面加载了上传的alreay个人资料照片时,此功能正常。 但是当上传一张新照片时,它应该显示新照片,但是当我上传新照片时它没有点击GetProfileImage()动作,即使我删除了照片,它也会从sql server中删除,但页面仍显示照片..

当我上传新照片时,我该怎么办,以便在删除照片时显示新照片以及我该怎么办,以便在我删除照片后不会显示照片。

1 个答案:

答案 0 :(得分:0)

您可以将id添加到img代码

 <img id="myimage" src="@Url.Action("GetProfileImage", "Controller", new { id = Model.DocId})"

在JS函数中

 function saveItemCompleted(data) {
     //Force to reloaded image
     var image = new Image();
     image.src = $("#myimage").attr("src") + "?_=" + (new Date().getTime()) ;
     $("#myimage").attr("src", image.src) 
 }