Подтвердить что ты не робот

MVC3 Actionlink с диалоговым окном подтверждения

Можно ли показать подтверждение для ActionLink?

Нужно ли использовать javascript? Возможно ли это без него?

Не могли бы вы привести несколько примеров для меня?

Спасибо.

//I want to make a confirmation message appear before the link opens.
@Html.ActionLink("Checkout and view order list", "Order", "Order")
4b9b3361

Ответ 1

Используя перегрузку Html.ActionLink(string linkText, string actionName, string controllerName, object RouteValues, object HtmlAttributes) и некоторый javascript, вы можете сделать следующее:

@Html.ActionLink("Checkout and view order list", "Order", "Order", null, new { onclick="return confirm('Are you sure you want to click this link?')" })

Это добавит атрибут HTML onclick, который будет выполнять указанный javascript при нажатии ссылки. Если событие onclick по ссылке (или кнопка отправки формы) возвращает false, действие (по ссылке, отправка формы) не происходит. Функция confirm(message) показывает пользователю диалог подтверждения с указанным сообщением и возвращает true или false в зависимости от ответа пользователя.

Ответ 2

Изменить: не используйте этот ответ, используйте другой из Jim.

Вы не сможете использовать ActionLink - вам придется написать какой-нибудь JavaScript (например, указанный здесь), чтобы введите подтверждение. Вы можете использовать Url.Action для создания URL-адреса, который javascript в конечном итоге будет использовать для сообщения или получения конечной точки.

Мой javascript плохой, но я думаю, что это дает идею через:

<a href="javascript:confirmation();">Checkout and view order list</a>

<script>
function confirmation() {
 var answer = confirm("Confirm?")
 if(answer) {
  // Do something here, post or get
  window.location = @Url.Action("Order", "Order");
 }
}
</script>

Ответ 3

В моем случае у меня была кнопка, которая уже вызвала действие:

<input id="ButtonDelete" type="button" value="Delete Experiment" class="big-nevigation-button" onclick="location.href='@Url.Action("DeleteExperiment", "Experiment", new { experimentId = Model.ExperimentId })'" />

После прочтения ответа Джима я изменил его на следующее:

<input id="ButtonDelete" type="button" value="Delete Experiment" class="big-nevigation-button" onclick="if (confirm('Are you sure you want to delete experiment???')) location.href='@Url.Action("DeleteExperiment", "Experiment", new { experimentId = Model.ExperimentId })'" />

И это работает! Спасибо, Джим!