Может ли кто-нибудь сказать мне, как я могу отправить значения в контроллер с помощью метода ActionLink и POST?
Я не хочу использовать кнопки.
Я думаю, что в этом есть что-то с jquery.
asp.net-mvc
actionlink
Шлякер
источник
источник
Ответы:
Вы не можете использовать,
ActionLink
потому что он просто отображает<a>
тег привязки .Вы можете использовать сообщение jQuery AJAX .
Или просто вызовите метод отправки формы с jQuery или без него (который не был бы AJAX), возможно, в
onclick
случае любого элемента управления, который вам нравится.источник
Если вы используете ASP MVC3, вы можете использовать Ajax.ActionLink (), который позволяет вам указать HTTP-метод, который вы можете установить на «POST».
источник
jquery.unobtrusive-ajax.min.js
". В противном случае при щелчке он продолжит выполнять GET вместо POST. Синтаксис для создания ссылки будет примерно таким:@Ajax.ActionLink("Delete", "Delete", new { id = item.Id }, new AjaxOptions {HttpMethod = "POST"})
"data-ajax"="true, "data-ajax-url"=<your link> and "data-ajax-method"="Post"
. Кстати, я использую ASP.NET MVC 3Вы можете использовать jQuery для выполнения POST для всех ваших кнопок. Просто дайте им то же имя CssClass.
Используйте "return false;" в конце вашего события javascript onclick, если вы хотите выполнить RedirectToAction на стороне сервера после публикации, в противном случае просто верните представление.
Код бритвы
Код JQuery
C #
источник
@Aidos получил правильный ответ, просто хотел прояснить, поскольку он скрыт внутри комментария к его сообщению, сделанному @CodingWithSpike.
источник
Это был ответ, запеченный в проект ASP.NET MVC 5 по умолчанию, который, я считаю, хорошо выполняет мои задачи по стилизации в пользовательском интерфейсе. Отправка формы с использованием чистого javascript в некоторую содержащую форму.
Полностью показанный вариант использования - это раскрывающийся список выхода на панели навигации веб-приложения.
источник
ActionLink никогда не запустит публикацию. Он всегда запускает запрос GET.
источник
Используйте следующую ссылку "Вызов действия":
Для отправки значений формы используйте:
Он отправит Данные в Контроллер клиентов и действие CustomerSearchResults.
источник
Используйте эту ссылку внутри Ajax.BeginForm
;)
источник
Мое решение этой проблемы довольно простое. У меня есть страница, на которой клиент выполняет поиск по всему электронному письму, а другой по частям, частичное извлекает и отображает список, в котором есть ссылка на действие, которая указывает на результат действия под названием GetByID и передает идентификатор
GetByID извлекает данные для выбранного клиента, а затем возвращает
который является методом публикации
источник
Мне было трудно решить эту проблему. Как я могу создать динамическую ссылку в razor и html, которая может вызывать метод действия и передавать значение или значения определенному методу действия? Я рассмотрел несколько вариантов, включая настраиваемый помощник html. Я просто придумал простое и элегантное решение.
Вид
Метод действия
Дело в том, что Url.Action не заботится о том, является ли метод действия GET или POST. Он будет обращаться к любому из методов. Вы можете передать свои данные в метод действия, используя
объект routeValues. Я пробовал это, и это работает. Нет, технически вы не делаете публикацию или не отправляете форму, но если объект routeValues содержит ваши данные, не имеет значения, является ли это публикацией или получением. Вы можете использовать определенную сигнатуру метода действия, чтобы выбрать правильный метод.
источник
Я сделал ту же проблему, используя следующий код:
источник
Это мое решение проблемы. Это контроллер с двумя методами действий
Во View визуализирую конструкцию следующей структуры.
Достопримечательности в Razor View :
Функция JavaScript,
confirmDelete(id)
которая вызывается при нажатии на ссылку, созданную с помощью@Html.ActionLink
;confirmDelete()
функция требует id элемента, по которому щелкают. Этот элемент передается изonClick
обработчика.confirmDelete("+feedback.Id+");return false;
Обратите внимание, что обработчик возвращает false, чтобы предотвратить действие по умолчанию - получение запроса к цели.OnClick
событие для кнопок может быть прикреплено с помощью jQuery для всех кнопок в списке в качестве альтернативы (возможно, это будет даже лучше, так как на HTML-странице будет меньше текста, а данные можно будет передавать черезdata-
атрибут).Форма имеет
id=myForm
, чтобы найти его вconfirmDelete()
.Форма включает
@Html.HttpMethodOverride(HttpVerbs.Delete)
в себя , чтобы использоватьHttpDelete
глагол, поскольку действие, отмеченное знакомHttpDeleteAttribute
.В функции JS я использую подтверждение действия (с помощью внешнего плагина, но стандартное подтверждение тоже работает нормально. Не забывайте использовать
bind()
в обратном вызове илиvar that=this
(как вам удобнее).Форма имеет скрытый элемент с
id='idField'
иname='id'
. Таким образом, перед отправкой формы после подтверждения (result==true
) значение скрытого элемента устанавливается на значение переданного аргумента, и браузер отправляет данные контроллеру следующим образом:URL запроса :
http://localhost:38874/Feedback/Delete
Метод запроса : Код состояния POST: 302 Найдено
Заголовки ответа
Расположение: / Хост обратной связи: localhost: 38874 Данные формы X-HTTP-Method-Override: DELETE id: 5
Как видите, это POST-запрос с X-HTTP-Method-Override: DELETE и данными в теле, установленными на «id: 5». В ответе есть код 302, который перенаправляет на действие Index, таким образом вы обновляете свой экран после удаления.
источник
Я бы рекомендовал придерживаться принципов REST и использовать HTTP-удаление для удаления. К сожалению, в спецификациях HTML есть только HTTP Get & Post. Тег может получить только HTTP. Тег формы может выполнять HTTP Get или Post. К счастью, если вы используете ajax, вы можете выполнить HTTP-удаление, и это то, что я рекомендую. Подробности смотрите в следующем сообщении: Http Deletes
источник
Вызов $ .post () не будет работать, поскольку он основан на Ajax. Поэтому для этой цели необходимо использовать гибридный метод.
Ниже приводится решение, которое работает для меня.
Шаги: 1. Создайте URL-адрес для href, который вызывает метод с URL-адресом и параметром 2. Вызовите обычный POST с использованием метода JavaScript.
Решение:
В .cshtml:
Примечание: анонимный метод должен быть заключен в (....) (), т.е.
postGo определяется в JavaScript, как показано ниже. Остальные просты ..
@ Url.Action ("Просмотр") создает URL для звонка.
{'id': @ accept.ReceiptId} создает параметры как объект, который, в свою очередь, преобразуется в поля POST в методе postGo. Это может быть любой параметр, который вам нужен
В JavaScript:
Ссылочные URL-адреса, которые я использовал для postGo
GET / POST без использования ajax с использованием jQuery (плагин?)
http://nuonical.com/jquery-postgo-plugin/
источник
jQuery.post()
будет работать, если у вас есть собственные данные. Если вы хотите опубликовать существующую форму, ее проще использоватьajaxSubmit()
.И вам не нужно настраивать этот код
ActionLink
сам по себе, так как вы можете прикрепить обработчик ссылки кdocument.ready()
событию (в любом случае, это предпочтительный метод), например, используя$(function(){ ... })
трюк jQuery.источник
Столкнулся с необходимостью выполнить POST со страницы поиска (индекса) на страницу результатов. Мне не нужно было столько, сколько заявил @Vitaliy, но он указал мне в правильном направлении. Все, что мне нужно было сделать, это следующее:
У моего контроллера был следующий метод подписи:
источник
Это взято из образца проекта MVC
источник