Embed Html.ActionLink in Javascript in Razor

I know that it’s possible to embed @Html in Javascript in MVC3, but I can’t get the following to work and not sure if this is possible yet.

Using jQuery DataTable, I have an AJAX call to create my new row, then I programatically add this using the datatable API. This all works, but then I want to put my Edit ActionLink onto the row and it only shows up with the text “Edit”, not the link.

Of course I could do this manually, just wondering if there is a better option.

e.g.

 tablePallets.fnAddData([ GetPalletActionLinks(), etc...


    function GetPalletActionLinks() {
        var result = @Html.ActionLink("Edit", "EditPallet", new { id = 1 });
        return result;
}

I’ve hard coded ID = 1 for the moment, but I can easily get this for the newly created row.

Thanks
Duncan

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

I think it’s a simple as adding quotes around the link:

var result = '@Html.ActionLink("Edit", "EditPallet", new { id = 1 })';

This will generate the whole <a> tag. What you could do as well is just return the url:

var result  = '@Url.Action("EditPallet", new { id = 1 })';

and the embed it in an existing anchor using jQuery:

<!-- let's imagine this already exists -->
<a href="#" rel="nofollow noreferrer noopener" id="dynamicLink">Edit</a>

// result is ovbiously what the other function returns
$("#dynamicLink").attr("href", result);


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x