Аякс.ActionLink не публикуется
Я пытаюсь перейти к действию MVC, отправляя, а не получая. (Действие-это удаление, и я не хочу, чтобы оно было доступно по внешней ссылке.)
Я использую ссылку в сетке, сгенерированной
Ajax.ActionLink("Remove", "Delete", new { saID = Model.Said, id = e.id }, new AjaxOptions { HttpMethod = "POST", Confirm = "Are you sure you want to delete this item?" })
Который генерирует следующий HTML:
<a href="/Equipment/Delete/102424/229933" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, confirm: 'Are you sure you want to delete this item?', httpMethod: 'POST' });">Remove</a>
Моя проблема заключается в том, что когда я нажимаю на ссылку, я достигаю действия удаления через GET, а не сообщение, и диалог подтверждения не происходит. Я гуглил это уже несколько часов и просто продолжаю обматывание вокруг оси. Что я делаю не так?
2 ответа:
Вполне вероятно, что у вас на странице есть какая-то другая ошибка javascript, которая не позволяет работать javascript, обрабатывающему сообщение AJAX. В этом случае ссылка возвращается к своему поведению по умолчанию (GET). Проще всего использовать инструменты разработчика IE8 или Firefox / Firebug (я предпочитаю их) и посмотреть, есть ли у вас какие-либо ошибки в консоли, когда загружается страница или вызывается ваше действие. Если вы используете IE, вам нужно будет использовать
Internet Options -> Advanced
и снять флажокDisable script debugging
.Исправьте ошибка javascript, и я думаю, что он просто начнет работать.
Я хотел добавить это в качестве комментария под принятым ответом, но почему-то нет возможности ввести это в качестве комментария, поэтому добавление этого в качестве ответа
В моем случае мне пришлось добавить "jquery.ненавязчивый-Аякс.минута.js " до MicrosoftAjax.js и MicrosoftMvcAjax.JS и потом ссылку инициировали запрос AJAX. Но это был GET, и я хотел пост, поэтому я просто добавил
HttpMethod = "Post"
в "AjaxOptions". Так оно и было.