Вставить Html.ActionLink в Javascript в Razor

75
7

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


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


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


например.


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

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


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


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

спросил(а) 2011-04-29T12:06:00+04:00 9 лет, 11 месяцев назад
1
Решение
135

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


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

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

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

и встроить его в существующий якорь с помощью jQuery:


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

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

ответил(а) 2011-04-29T12:16:00+04:00 9 лет, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема