Как я могу реализовать кнопку удаления и отмены в MVC3? - PullRequest
1 голос
/ 09 декабря 2011

У меня есть форма для удаления записи. Одна форма, которую я использую кнопку удаления, и когда кнопка нажата, форма отправляется.

<input type="submit" value="Delete" />

Как я могу осуществить отмену и проверить в действии, было ли нажато удаление или отмена?

Ответы [ 5 ]

7 голосов
/ 09 декабря 2011

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

<input type='submit' value='Delete' name='action' />
<input type='submit' value='Cancel' name='action' />

А потом в вашем действии:

[HttpPost]
public ActionResult Submit(string action) {
    if (action == "Delete") {
        // User clicked "Delete"
    } else {
        // User clicked "Cancel"
    }
}
2 голосов
/ 10 декабря 2011

Вам действительно нужно обработать событие отмены щелчка в вашем контроллере?Вы, вероятно, просто перенаправляете пользователя на другую страницу, когда он отменяет, верно?Javascript хорошо сработал для меня:

<input type="button" value="Cancel" 
   onclick="window.location='<%: Url.Action("Details", new { id = Model.Id }) %>'" />
0 голосов
/ 24 января 2014

В отношении сайта Стефана Уолтера ...

Приложение MVC

Как насчет использования атрибута [ChildActionOnly] с некоторой аутентификацией в ActionResult для защиты от случайного удаления? Что если вы используете обратные вызовы jQuery GET с ActionResult, который отображает PartialView, поскольку он предполагает, что пуристы REST будут отстаивать идею, что запросы GET не должны изменять состояние вашего приложения? как:

//delete comment and make ajax callback
function del(aid, cid) {
    $.ajax("/Article/DelCom?AId=" + aid + "&" + "CId=" + cid, function (result) {
        $('#comments-partial').html(result);
    });

Или это применимо только к ссылкам?

0 голосов
/ 09 декабря 2011

My Введение в ASP.NET MVC 3 объясняет это. Убедитесь, что вы не удаляете на GET.

0 голосов
/ 09 декабря 2011

Используя jQuery (ну, вы можете сделать это только на JavaScript), вы можете сделать что-то вроде:

$('input[type="submit"]').click(function(e) {
    if(confirm('Are you sure?') {
        // do delete
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...