2013-04-27 39 views
2

,所以我有我的觀點,即包含一些actionlinks和JavaScript的方法,我想是把我的腳本在ActionLink的,這是我的腳本:如何在actionlink mvc 4中調用javascript函數?

function deleteSubscriber(id) 
{ 
    var url = '/Subscribers/Delete/' + id; 
    $.ajax({ 
    type: "delete", 
    url: url, 
    data: {}, 
    datatype: 'json', 
    success: function (data) { alert(id); }, 
    }); 
} 

這是我的ActionLink:

@Html.ActionLink("Delete", "Delete", new { id=//here i want to put my script },new { @class = "delete-logo" }) 

這是我的行動:

[HttpDelete,ActionName("delete")] 
    public ActionResult Delete(string id) 
    { 
     try 
     { 
       IEnumerable<Subscribe> list = from s in dbcontext.Subscribes select s; 
       foreach (var sb in list) 
       { 
        if (sb.cin == id) 
        { 
         dbcontext.Subscribes.Remove(sb); 
        } 
       } 
       dbcontext.SaveChanges(); 
       return View("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

回答

4

有很多方法可以做到這一點,這就是其中之一: -

在你看來: -

@Html.ActionLink("Delete", "Delete", new { id=//here i want to put my script }, 
new { @class = "delete-logo" }); 

如果你想叫它AJAX的方式,你CA創建這樣的鏈接。

<a class="delete-logo" data-key="@Model.Cin" href="javascript:void(0);"/> 

腳本: -

$(function() 
{ 
    $('.delete-logo').on('click',function(){ 
    //Do something to get id. 
    //Get the delete button id if it is the id you want to use for deletion. 
    var id = $(this).data('key'); 
    deleteSubscriber(id); 
    }) 
}); 
+0

感謝您的回覆,我只是想知道如何獲得id並將其傳遞給腳本! – Mohammadov 2013-04-27 15:49:20

+0

Id是否會成爲您的刪除按鈕的ID? – PSL 2013-04-27 15:50:18

+0

如果有意義,請參閱我的更新。 – PSL 2013-04-27 15:53:12

0

除非您想在JavaScript關閉的情況下調用它,否則不需要它爲ActionLink

我會將class屬性添加到鏈接並將其與.click事件綁定。

4

如果你想堅持在你的錨的JavaScript調用,你不一定需要/想使用的HtmlHelper。你可以寫簡單的舊HTML:

<a href="@Url.Action("delete")" onclick="javascript:deleteSubscriber(@id)">Delete</a> 

雖然;我不會推薦使用這種語法; jQuery的(和其他的JavaScript框架)提供一個更侵入性的方式結合的處理程序:

<a href="@Url.Action("delete")" class="delete-btn" data-id="@id">Delete</a> 

$('a.delete-btn').on('click', function(event) { 
    event.preventDefault(); 
    // call the function 
    deleteSubscriber($(this).data('id')); 
}); 

顯然,在這兩個我假設你有某種循環,你有機會獲得一個id變量。

相關問題