如何在actionlink MVC 4中调用javascript函数

how to call a javascript function in actionlink mvc 4?

本文关键字:调用 javascript 函数 MVC actionlink      更新时间:2023-09-26

所以我有我的视图,包含一些actionlinks和一个javascript方法,我想要的是调用我的脚本在actionlink, 这是我的脚本:

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

this is my 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();
        }
    }

有很多方法可以做到这一点,这里是其中之一:-

In your View:-

@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);
  })
});

如果你想坚持在你的锚中使用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变量

你不需要让它是一个ActionLink,除非你想让它调用它,如果JavaScript是关闭的

我将添加一个class属性到链接,并将其与.click事件绑定。