Вставить Html.ActionLink в Javascript в Razor - PullRequest
2 голосов
/ 29 апреля 2011

Я знаю, что можно встроить @Html в Javascript в MVC3, но я не могу заставить работать следующее и не уверен, возможно ли это пока.

Используя jQuery DataTable, у меня есть вызов AJAX для создания моей новой строки, а затем я программно добавляю это, используя API данных. Это все работает, но затем я хочу поместить свой Edit ActionLink в строку, и он отображается только с текстом «Edit», а не со ссылкой.

Конечно, я мог бы сделать это вручную, просто задаваясь вопросом, есть ли лучший вариант.

, например

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


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

На данный момент у меня жестко закодированный ID = 1, но я могу легко получить это для вновь созданной строки.

Спасибо Дункан

1 Ответ

9 голосов
/ 29 апреля 2011

Я думаю, что это просто добавить кавычки вокруг ссылки:

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

Это сгенерирует весь тег <a>. То, что вы могли бы сделать, это просто вернуть URL:

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

и вставьте его в существующий якорь, используя jQuery:

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

// result is ovbiously what the other function returns
$("#dynamicLink").attr("href", result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...