У меня есть actionlink, который запускает функцию в контроллере представления, функция перемещает файл из одной папки в папку «архив», поэтому ничего не возвращает.Однако, когда кнопка нажата, функция запускается, и правильный файл перемещается, но представление меняется на "/ functionName + variable", мне нужно, чтобы страница оставалась прежней и только для запуска функции.В идеале не нужно обходиться без обновления / перенаправления страницы обратно на себя.
Кнопка находится в режиме ng-repeat, поскольку файлы могут изменяться, есть также кнопка для загрузки файла, который запускается, и файл загружается, никаких изменений вида и т. Д. Не происходит.
<div ng-repeat="file in toFileList">
@{
var toURL = Url.Action("DownloadFile", "Home", new { ToFrom = "to", FileName = "{{toFileList[$index][0]}}"});
toURL = HttpUtility.UrlDecode(toURL);
}
@{
var toArchiveURL = Url.Action("ArchiveFile", "Home", new { ToFrom = "to", FileName = "{{toFileList[$index][0]}}" });
toArchiveURL = HttpUtility.UrlDecode(toArchiveURL);
}
<a style="text-decoration: none;" data-ng-href="@toURL">
<span class="glyphicon glyphicon-download-alt"></span>
</a>
<a style="text-decoration: none;" data-ng-href="@toArchiveURL">
<span class="glyphicon glyphicon-eye-open"></span>
</a>
</div>
Я создаю URL-адреса actionlink, затем применяю их к каждой кнопке, используя data-ng-href
Эта функция пуста, поскольку она не возвращает ничего, в отличие от функции загрузки файла, котораяимеет тип ActionResult.
public void ArchiveFile(string ToFrom, string FileName)
{
string path = BaseFolder + client + @"\" + ToFrom + @"\" + FileName;
string destinationPath = BaseFolder + client + @"\" + ToFrom + @"\Archive\" + FileName;
byte[] fileBytes = System.IO.File.ReadAllBytes(path);
System.IO.File.Move(path, destinationPath);
}
Я попытался добавить "id =" что-то "к {}, содержащему переменные действия, а затем добавить следующее в нижней части страницы (ниже приведен другой подобный вопрос здесь)
<script>
$("#something").click(function (e) {
e.preventDefault();
$.ajax({
url: $(this).attr("href"),
success: function () {
alert("clicked");
}
});
});
</script>
Но это приводит к тому, что ничего не происходит
РЕДАКТИРОВАТЬ: Я также пробовал идентификатор js / ajax для тега и внутри с теми же результатами.