I have a script that appends some rows to a table. One of the rows has a delete link, and for that I am using a ActionLink, however the id of the element is received via js, and this is nor working:
$("#Table").last().append('<tr><td><a href=\"<%:Html.ActionLink("Delete", "DeleteElementFromSet", new {id=%>Id<%})%>">Delete</a></td><td>'+Id+'</td></tr>');
where Id is a javascript variable that gets its value from the value of a dropdownlist.
Is there a way to use ActionLink like this? or do I have to write down the path manually?
Because the id is known only at the client side you will need to construct the proper url. This being said never mix C# and javascript. Here’s how you might proceed:
Start by declaring a global variable that will hold the delete link without the id part:
and then in a separate javascript file:
Notice that you should use
Url.Actioninstead ofHtml.ActionLinkbecause you already have the anchor manually generated.Remark: avoid using GET verbs for deleting. You might have bad surprises. Use proper verb (or at least POST) when modifying state on the server such as deleting.