所以我的观点包含一些actionlinks和一个javascript方法,我想要的是在actionlink中调用我的脚本,这是我的脚本:
function deleteSubscriber(id)
{
var url = '/Subscribers/Delete/' + id;
$.ajax({
type: "delete",
url: url,
data: {},
datatype: 'json',
success: function (data) { alert(id); },
});
}
这是我的行动链接:
@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();
}
}
答案 0 :(得分: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);
})
});
答案 1 :(得分: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
变量。
答案 2 :(得分:0)
除非您希望在JavaScript关闭时调用它,否则您不需要将其设为ActionLink
。
我会在链接中添加class
属性,并将其与.click
事件绑定。