Подтвердить что ты не робот

Переменная Javascript в бритве ActionLink

var boxIdValue = 233;
var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=233}, null)';

Когда я жестко обозначаю boxId, тогда он работает. Но когда я пишу:

var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=boxIdValue}, null)';

Это не так. Можно ли таким образом смешивать javascript var и бритву?

4b9b3361

Ответ 1

Посмотрите на этот связанный вопрос о переполнении стека.

Причина, по которой это проблема, заключается в том, что метод Razor выполняется на веб-сервере во время рендеринга, когда javascript выполняется в браузере клиента во время выполнения.

Я решил бы это, сделав что-то вроде

var boxIdValue = 233;
var link = '@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=-1}, null)'
link = link.replace('-1', boxIdValue);
var result = title + '<br />' + link;