ASP.NET MVC3: окно подтверждения перед отправкой - PullRequest
3 голосов
/ 21 ноября 2011

У меня есть следующий код, который в основном является флажком, который вызывает отправку.Поскольку задача удаляется для БД, требуется, чтобы появилось окно с сообщением «Вы уверены» или «Нравится», чтобы подтвердить удаление.

<input type="checkbox" 
       onclick="location.href='@Url.Action("Complete", "Tasks", 
                                           new { TaskID = item.TaskID })'" />

При этом используется синтаксис Razor.

Ответы [ 2 ]

9 голосов
/ 21 ноября 2011

Вы можете использовать метод подтверждения :

<input type="checkbox" onclick="if (confirm('Are you sure?')) { window.location.href = '@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })'; }" />

или более ненавязчивым способом с помощью jquery:

<input type="checkbox" id="complete" name="complete" data-url="@Url.Action("Complete", "Tasks", new { TaskID = item.TaskID })" />

, а затем в отдельном файле JavaScript:

$(function() {
    $('#complete').click(function() {
        if (confirm('Are you sure?')) {
            window.location.href = $(this).data('url');
        }
    });
});

Также я настоятельно рекомендую вам использовать другой глагол, нежели GET, для действий контроллера, которые изменяют состояние на вашем сервере, например помечают задачу как выполненную. PUT, POST и DELETE - хорошие кандидаты. В вашем случае, поскольку вы модифицируете существующий элемент, глагол POST кажется наиболее естественным.

4 голосов
/ 21 ноября 2011

Вы можете перехватить форму отправки события и запросить подтверждение.основываясь на том, что возвращают true или false, чтобы разрешить отправку.сродни

 $("#form").submit(function (event) {


   if ( confirm("Are you sure you want to delete"))
       return true;
 else{
     event.preventDefault();
     return false;
      }
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...