//code
$(document).on("click", ".open-chartModal", function () {
var spNames = $(this).data('id');
$("#spNames").val(spNames);
var separated = spNames.split(";");
for (var i = 0, length = separated.length; i < length; i++) {
var chunk = separated[i];
$('#options').append('<li>@Ajax.ActionLink("Chart", "Chart",
new { spName = "'+ chunk +'" }, new AjaxOptions { }) </li>')
}
});
Вышеприведенное означает "chunk" как строку, а не переменную. Я хочу поставить spNames = var chunk. Не знаю, находятся ли одиночные кавычки в правильном месте.
Попробуй это
var url = '@Ajax.ActionLink("Chart", "Chart", new { spName = "-1" }, new AjaxOptions { })';
$('#options').append('<li>' + url.replace('-1', chunk )+ '</li>')
Поскольку @Ajax.ActionLink
будет отображаться бритвой. Вы не можете передавать переменные JavaScript.
Вы можете добавить значение placeholder и заменить его на свою переменную.
Я думаю, вы этого хотите:
for (var i = 0, length = separated.length; i < length; i++) {
var chunk = separated[i];
$('#options').append('<li>@Ajax.ActionLink("Chart", "Chart",' +
'new { spName = "'+ chunk +'" }, new AjaxOptions { }) </li>')
}
Ваша строка новой строки разбила ваш строковый литерал. Необходимо закрыть его и явно соединить.