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

Как перенаправить действие с помощью метода JavaScript?

У меня есть input type="button"

<input type="button" name="DeleteJob" runat="server" value="Löschen" onclick="DeleteJob()" />

и метод JavaScript:

function DeleteJob() {

    if (confirm("Do you really want to delete selected job/s?"))
        return true;
    else
        return false;
}

Как я могу вместо этого вернуть true, перенаправить на Action DeleteJob?

[HttpGet]
public ActionResult DeleteJob(string selectedObject)
{
    return View();
}
4b9b3361

Ответ 1

Чтобы перенаправить:

function DeleteJob() {
    if (confirm("Do you really want to delete selected job/s?"))
        window.location.href = "your/url";
    else
        return false;
}

Ответ 2

function DeleteJob() {
    if (confirm("Do you really want to delete selected job/s?"))
        window.location.href = "/{controller}/{action}/{params}";
    else
        return false;
}

Ответ 3

Я хочу, чтобы я мог просто прокомментировать ответ yojimbo87, чтобы опубликовать это, но у меня недостаточно репутации, чтобы комментировать. Было указано, что этот относительный путь работает только от корня:

        window.location.href = "/{controller}/{action}/{params}";

Просто хочу подтвердить, что вы можете использовать @Url.Content для предоставления абсолютного пути:

function DeleteJob() {
    if (confirm("Do you really want to delete selected job/s?"))
        window.location.href = '@Url.Content("~/{controller}/{action}/{params}")';
    else
        return false;
}

Ответ 4

Может быть, лучше сделать привязку с URL-адресом DeleteJob вместо кнопки?

<a href="<%=Url.Action("DeleteJob", "YourController", new {selectedObject="someObject"})%>" onclick="return DeleteJob()">Löschen</a>

и используйте свой javascript, который вы написали уже:

function DeleteJob() {

        if (confirm("Do you really want to delete selected job/s?"))
            return true;
        else
            return false;
    }

Итак, если функция возвращает true - вы будете перенаправлены. Если функция возвращает false - вы все равно остаетесь на странице.

Ответ 5

Используйте метод @Url.Action. Это будет работать и определяет правильный маршрут независимо от того, на каком сервере IIS вы развернулись.

ПРИМЕР- window.location.href= "@Url.Action(" Действие "," Контроллер ")";

поэтому в случае действия индекса на контроллере Home - window.location.href= "@Url.Action(" Index "," Home ")";

Ответ 6

Вы можете либо отправить запрос Ajax на сервер, либо использовать window.location для этого URL.

Ответ 7

Я немного боролся с этим, потому что хотел использовать Knockout для привязки кнопки к событию click. Здесь моя кнопка и соответствующая функция изнутри моей модели представления.

<a class="btn btn-secondary showBusy" data-bind="click: back">Back to Dashboard</a>

var vm = function () {
...
    self.back = function() {
        window.location.href = '@Url.Action("LicenseDashboard", "Application")';
    }
}