2013-04-23 27 views
0

我有這個問題。我有編輯頁面,其中一個屬性是超鏈接。一個div顯示我想要的視頻列表,如果我點擊任何鏈接(例如「刪除」),它將觸發ajax調用來刪除選定的項目。但我有一個奇怪的問題。每次點擊任何鏈接時,都會調用「編輯」頁面,這是當前頁面而不是「刪除」方法。我的鏈接以這種方式呈現。爲什麼我的鏈接點擊時調用錯誤的行爲結果

<a href="#" class="video" id="@Model.VirtualTourGalleries[i].Virtual_Tour_Id">Delete</a> 

請幫忙。這是我的代碼。

HTML

<div class="fieldElem"> 
     <div class="editor-label">Virtual Tours & Videos</div> 
     <div class="editor-field"> 
      <table id="gridVirtualTours"> 
       <thead> 
        <tr> 
         <th>VIDEO</th> 
         <th></th> 
        </tr> 
       </thead> 
       <tbody> 
        @if (Model.VirtualTourGalleries != null) 
        { 
         for(var i = 0; i < Model.VirtualTourGalleries.Count(); i++) 
         { 
          @Html.HiddenFor(model => model.VirtualTourGalleries[i].Virtual_Tour_Id) 
          <tr> 
           <td>@Model.VirtualTourGalleries[i].Virtual_Tour_Title</td> 
           <td><a href="#" class="video" id="@Model.VirtualTourGalleries[i].Virtual_Tour_Id">Delete</a></td> 
          </tr> 

         } 
        } 
       </tbody> 
       <tfoot> 
       </tfoot> 
      </table> 

     </div> 
    </div> 

jQuery函數

$("#gridVirtualTours").on('click', '.video', function() { 
      var tr = $(this).closest('tr'); 
      $.ajax({ 
       url: "deletevideo", 
       type: 'POST', 
       data: { videoid: $(this).attr('id') }, 
       success: function (result) { 
        if (result) tr.remove(); 
       } 
      }); 
     }); 

控制器

[HttpPost] 
     public ActionResult DeleteVideo(int? videoid) 
     { 
      return Json("", JsonRequestBehavior.AllowGet); 
     } 

調試圖像

enter image description here

當 「刪除」,點擊它所稱的 「編輯」,而不是在 「刪除」

enter image description here

回答

1

嘗試

url: '@Url.Action("DeleteVideo","ControllerName")', 

取而代之的是

url: "deletevideo", 
+0

這的確是!非常感謝! – 2013-04-23 07:51:04

+0

歡迎@JobertEnamno – Amit 2013-04-23 07:55:39

0

使用適當的情況下sentive動作名稱的jQuery AJAX網址屬性。即url: "DeleteVideo",

+0

嘗試過,但沒有運氣還是一樣。 – 2013-04-23 07:34:36

1

改變這樣的代碼:

$("#gridVirtualTours").on('click', '.video', function (e) { 
      e.stopPropagation(); 
      var thisElement = $(this); 
      var tr = $(this).closest('tr'); 
      $.ajax({ 
       url: "@Url.Action("DeleteVideo" , "Controller" , new {area ="area if it's not in base controller folder"})", 
       type: 'POST', 
       data: { videoid: thisElement.attr('id') }, 
       success: function (result) { 
        if (result) tr.remove(); 
       } 
      }); 
     }); 
相關問題