2013-04-27 2 views
2

так что я своя точка зрения, которая содержит некоторые actionlinks и яваскрипт метод, то, что я хочу назвать мой сценарий в ActionLink, это мой сценарий:как вызвать функцию javascript в actionlink mvc 4?

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, как вы ча создать свою ссылку, как это ,

<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

спасибо за ответ, я просто задаюсь вопросом, как я могу получить идентификатор и передать его сценарию! – Mohammadov

+0

Является ли идентификатор идентификатором вашей кнопки удаления? – PSL

+0

Смотрите мое обновление, если это имеет смысл. – PSL

0

Вам не нужно, чтобы это было ActionLink, если вы не хотите, чтобы это было, если JavaScript отключен.

Я бы добавил атрибут class к ссылке и связал ее с событием .click.

4

Если вы хотите, чтобы настаивать на вызов JavaScript в вашем якоре, не обязательно/желательно использовать HtmlHelper. Вы можете написать простой старый HTML:

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

Я бы не рекомендовал использовать этот синтаксис; JQuery (и других фреймворков) обеспечивают гораздо менее навязчивым способом связывания обработчиков:

<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 переменной.

Смежные вопросы