Asp .Net Mvc删除无效

时间:2015-01-08 12:54:42

标签: c# asp.net-mvc

大家好我想尝试添加编辑和删除但删除不起作用是我的列表索引代码;

@foreach (var item in Model.Haberler)
                            {
                                <tr id="@item.Id" data-trid="tr_@item.Id">
                                    <td>
                                        <a href="javascript:;" class="btn btn-xs dropdown-toggle" data-toggle="sortable">
                                            <i class="fa fa-reorder"></i>
                                        </a>
                                    </td>
                                    <td>
                                        <div class="btn-group">
                                            <button type="button" class="btn btn-xs purple dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="1000" data-close-others="true">
                                                İşlem <i class="fa fa-angle-down"></i>
                                            </button>
                                            <ul class="dropdown-menu" role="menu">
                                                <li><a href="@Url.Action("Edit", new { Id = item.Id })" data-title="Kayıt Güncelle"><i class="fa fa-edit"></i>Düzenle</a></li>
                                                <li><a href="javascript:;" data-toggle="bsdelete" data-title="@item.Title" data-url="@Url.Action("Delete")" data-id="@item.Id"><i class="fa fa-trash-o"></i>Sil</a></li>
                                            </ul>
                                        </div>
                                    </td>
                                    <td><a href="@item.Resim" data-rel="fancybox-button" class="fancybox-button">@item.Title</a></td>
                                </tr>
                            }

这是我的控制器删除;

public ActionResult Delete(int? Id)
    {
        if (!Id.HasValue)
            return Json(new { IsComplete = false });

        try
        {
            var item = Db.Haberler.FirstOrDefault(p => p.Id == Id.Value);
            UrunSil(item);
        }
        catch
        {
            return Json(new { IsComplete = false });
        }

        return Json(new { IsComplete = true });
    }

我发送给AdminBaseController删除;

   public void DosyaSil(string yol)
    {
        try
        {
            System.IO.File.Delete(Server.MapPath("~" + yol));
        }
        catch { }
    }
    public void UrunSil(News item)
    {

        DosyaSil(item.ResimBuyuk);
        DosyaSil(item.ResimKucuk);
        Db.Haberler.Remove(item);
        Db.SaveChanges();
    }

当我点击删除图标时,断点不起作用就像空的一样 可能是什么问题呢 ?

当我点击删除按钮时,我在控制台上收到此错误;

Uncaught ReferenceError: bootbox is not definedglobal.js:113 (anonymous function)jquery-1.10.2.min.js:5 x.event.dispatchjquery-1.10.2.min.js:5 v.handle

2 个答案:

答案 0 :(得分:1)

删除不起作用因为删除方法不正常,因为您调用的方式错误,如果您想调用此类删除操作,则需要重定向到另一个操作进程并返回“当前视图/行动”。使用Ajax和Jquery可以非常简单,这是一个示例:

    <li><a class="delete" data-toggle="bsdelete" data-title="@item.Title" data-url="@Url.Action("Delete")" data-id="@item.Id"><i class="fa fa-trash-o"></i>Sil</a></li>

你需要这样做:

 $(function(){
    $(".delete").click(function () {
       $.ajax({
           type: "DELETE",
           url: $(this).attr("data-url") + "?Id=" + $(this).attr("data-id"),
           success: function (data) {
             //Remake the search
          },
          error: function(jqXHR, exception, a, b){
                 alert(jqXHR.responseText);
           }
      });
   });
});

Delete方法不会重新显示消息正文,而Http动词使用的是Delete,因为您的操作名称。所以参数需要在Url上的queryString中。

答案 1 :(得分:0)

<a> 添加类名称,如下所示:

<li><a href="javascript:;" class="delete" data-toggle="bsdelete" data-title="@item.Title" data-    url="@Url.Action("Delete")" data-id="@item.Id"><i class="fa fa-trash-o"></i>Sil</a></li>

使用ajax按如下方式调用控制器:

$(function(){
   $(".delete").click(function () {
     $.ajax({
       url: $(this).attr("data-url"),
        data: "Id="+$(this).attr("data-id"),
       success: function (data) {
        // do stuff
       }
     });
  });
});