Аякс.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 6

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". Так оно и было.