• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Jquery Ajax Post删除服务器+ asp.net上的文件mvc + c#

c/c++ 来源:Tripping 9次浏览

嗨,我一直在试图创建一个链接,删除存储在服务器上的图片,并从数据库中删除信息。我想要使​​用ajax发布链接。我尝试了一切,但它不起作用。Jquery Ajax Post删除服务器+ asp.net上的文件mvc + c#

但是,它的工作原理,如果我试图做别的事情而不是删除 – 说更新数据库中的字段。

你能告诉我我做错了什么吗?

查看:

<div class="uploaded-property-pics clearfix"> 
    <ul> 
     @foreach (var item in Model.PropertyPhotos) { 
      <li> 
       <img src="@Url.Content("~/PropertyImages/" + item.PropertyId + "/" + "tn_" + item.PhotoLocation + ".png")"/> 
       <a href="/Property/DeletePhoto/@item.PropertyPhotosId" class="photo-delete-link">Delete</a> 
      </li> 
     } 
    </ul> 
</div> 

JQuery的:

<script> 
    $('.photo-delete-link').click(function (e) { 
     $.ajax({ 
      url: this.href, 
      dataType: "text json", 
      type: "POST", 
      data: {}, 
      success: function (data, textStatus) { } 
     }); 
     e.preventDefault(); 
    }); 
</script> 

控制器:

[HttpPost] 
    [Authorize] 
    public void DeletePhoto(int id) 
    { 
     var photo = websiteRepository.GetPhotoByPhotoId(id); 
     var folder = Server.MapPath("~/PropertyImages/" + photo.PropertyId + "/"); 

     if (!Directory.Exists(folder)) 
     { 
      var filePath = folder + photo.PhotoLocation + ".png"; 
      var thumbPath = folder + "tn_" + photo.PhotoLocation + ".png"; 
      websiteRepository.DeletePhotoFromServer(filePath); 
      websiteRepository.DeletePhotoFromServer(thumbPath); 
     } 

     websiteRepository.DeletePhotoFromDb(photo); 
    } 

数据访问:

public void DeletePhotoFromDb(PropertyPhotos photo) 
    { 
     db.PropertyPhotos.Remove(photo); 
    } 

    public void DeletePhotoFromServer(string filePath) 
    { 
     File.Delete(filePath); 
    } 


===========解决方案如下:

这就像它变得愚蠢!

微妙的条件错误:

if (Directory.Exists(folder)) // Note the subtle condition difference 
     { 
      var filePath = folder + photo.PhotoLocation + ".png"; 
      var thumbPath = folder + "tn_" + photo.PhotoLocation + ".png"; 
      websiteRepository.DeletePhotoFromServer(filePath); 
      websiteRepository.DeletePhotoFromServer(thumbPath); 
     } 

至于数据库的一部分,我没有保存数据库:

public void DeletePhotoFromDb(PropertyPhotos photo) 
    { 
     db.PropertyPhotos.Remove(photo); 
     db.SaveChanges(); // Missing this line 
    } 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)