У меня есть веб-страницу со следующим HTML:MVC RedirectToAction не работает, как ожидалось
<div class="row">
@Html.ActionLink("Delete Study", "DeleteStudy", "Study", new {topic = @Model.Study.PartitionKey, subtopic = @Model.Study.RowKey}, new { @class = "btn btn-primary" })
@Html.ActionLink("View Studies", "StudyList", "Study", null, new { @class = "btn btn-primary" })
</div>
Когда ссылка DeleteStudy нажата, следующий метод управления называется:
[Authorize]
public void DeleteStudy(string topic, string subtopic)
{
...
...
RedirectToAction("StudyList");
}
Метод DeleteStudy является и выполняется успешно, за исключением Redirect. Не происходит перенаправления. Метод StudyList (который имеет атрибут авторизации) никогда не вызывается. Я делаю что-то неправильно?
Ничто в коде, показали, что это не должно работать. Однако действие Delete должно действительно быть POST, а не GET (вы не хотите, чтобы это добавилось в историю браузера или позволяло пользователю вводить его в адресную строку. В лучшем случае это просто делает ненужный вызов для удаления чего-либо, что нет дольше существует, и в худшем случае может генерировать исключение в зависимости от вашего кода) –
На самом деле есть ошибка - это должно быть 'return RedirectToAction (« StudyList »);' –
даже поисковые системы могут удалять ваши данные при индексировании, если не ошибаются – MstfAsan