2013-02-28 64 views
0

道歉,如果這個我微不足道,我已經閱讀了很多其他評論,但仍然看不出有什麼問題。我做了一些教程,他們似乎工作正常,所以我真的很想念一些簡單的東西。Jquery Post未到達MVC控制器

我有一個基本的'刪除'鏈接,我想做一個JQuery Post回到控制器從數據庫中刪除一個項目,然後更新視圖。

我查看/ JavaScript的:

<script type="text/javascript"> 
$(function() { 
    $(".RemoveLink").click(function() { 
     var id = $(this).attr("data-id"); 

     if (id != '') { 
      $.post("@Url.Content("~/Agent/Remove")", { "id": id }, function (data) { alert('Here i am'); }); 
     } 
    }); 
}); 

@foreach (var item in Model.Object) { 
<tr id="[email protected]"> 
    <td> 
     @Html.DisplayFor(modelItem => item.Description) 
    </td> 
    <td> 
     <a href="#" class="RemoveLink" data-id="@item.ID" >Remove</a> 
    </td> 
</tr> 
    } 

我的控制器:

[HttpPost] 
    public ActionResult Remove(int id) 
    { 
     return Json(new { Data = "true" }); 
    } 

任何援助將是巨大的。

+2

您是否使用控制檯工具觀看了請求/響應循環? – 2013-02-28 13:25:20

+2

確定這是正確的網址?我會使用'@ Url.Action(「Remove」,「Agent」)' – musefan 2013-02-28 13:28:18

+2

此外,請檢查您的JavaScript控制檯,確保您的javascript沒有錯誤 – musefan 2013-02-28 13:34:08

回答

1

改爲使用@Url.Action("Remove", "Agent")

@Url.Content("...")用於查找網站的任何靜態內容。

乾杯

+1

正確的語法是'@ Url.Action(「Remove 「,」Agent「)' – nemesv 2013-02-28 13:30:21

+0

@nemesv:實際上,動作名稱是第一個參數,然後是控制器名稱。我看到你的編輯;-) – musefan 2013-02-28 13:31:11

+0

關閉......太多的語音標記(或者太少,取決於你如何看待它)。另外,你確定這是OP問題的原因嗎?我發佈了一條評論的原因 – musefan 2013-02-28 13:32:53

0

下面的代碼運行良好。

@foreach (var item in Model.Object) { 
    <tr id="[email protected]"> 
     <td> 
      @Html.DisplayFor(modelItem => item.Description) 
     </td> 
     <td> 
      <input type="button" class="RemoveLink" id="@item.ID" Value="Remove" /> 

     </td> 
    </tr> 
     } 

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     $('.RemoveLink').live("click", function() { 
      Remove($(this)); 
     }); 
    }); 

    function Remove(_this) { 

     var Id= $(_this).attr('id'); 

     $.ajax({ 
      type: 'POST', 
      url: '@Url.Action("Remove", "Agent")', 
      data: "{id: '" + Id + "'}", 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (data) { 
       //do something here...... 
      }, 
      error: function() { 

      } 
     }); 
    } 
</script> 
+0

你做了什麼?順便說一句OP代碼已經正常工作,我已經測試了 – musefan 2013-02-28 13:47:51

+0

@musefan -i給出了工作編碼樣本....因爲他想..... :) – 2013-02-28 13:50:05

+0

對不起,不夠好。 OP代碼已經有效,因此你沒有發現問題 – musefan 2013-02-28 13:51:07

相關問題