J'ai un type d'entrée = "bouton"
<input type="button" name="DeleteJob" runat="server" value="Löschen" onclick="DeleteJob()" />
et méthode JavaScript:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
return true;
else
return false;
}
Comment puis-je plutôt renvoyer true, rediriger vers Action DeleteJob?
[HttpGet]
public ActionResult DeleteJob(string selectedObject)
{
return View();
}
Pour rediriger:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
window.location.href = "your/url";
else
return false;
}
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
window.location.href = "/{controller}/{action}/{params}";
else
return false;
}
J'aimerais pouvoir commenter la réponse de yojimbo87, mais je n'ai pas encore assez de réputation pour commenter. Il a été souligné que ce chemin relatif ne fonctionne que depuis la racine:
window.location.href = "/{controller}/{action}/{params}";
Je voulais juste confirmer que vous pouvez utiliser @ Url.Content pour fournir le chemin absolu:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
window.location.href = '@Url.Content("~/{controller}/{action}/{params}")';
else
return false;
}
Peut-être mieux faire une ancre avec l'URL DeleteJob au lieu de bouton?
<a href="<%=Url.Action("DeleteJob", "YourController", new {selectedObject="someObject"})%>" onclick="return DeleteJob()">Löschen</a>
et utilisez votre javascript que vous avez déjà écrit:
function DeleteJob() {
if (confirm("Do you really want to delete selected job/s?"))
return true;
else
return false;
}
Donc, si la fonction retourne à true, vous serez redirigé. Si la fonction renvoie false, vous restez toujours sur la page.
Utilisez la méthode @ Url.Action. Cela fonctionnera et déterminera le bon itinéraire, quel que soit le serveur IIS sur lequel vous déployez.
Exemple - Window.location.href = "@ Url.Action (" Action "," Contrôleur ")";
ainsi, dans le cas de l'action Index sur le contrôleur Accueil - window.location.href = "@ Url.Action (" Index "," Home ")";
J'ai eu quelques difficultés avec cela parce que je voulais utiliser Knockout pour lier le bouton à l'événement click. Voici mon bouton et la fonction correspondante à l'intérieur de mon modèle de vue.
<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")';
}
}
Vous pouvez envoyer une demande Ajax au serveur ou utiliser window.location à cette URL.
(C'est plus un commentaire que je ne peux pas commenter à cause de la mauvaise réputation, cela pourrait être utile)
Si vous vous trouvez dans sth.com/product et que vous souhaitez rediriger vos messages vers sth.com/product/index use
window.location.href = "index";
Si vous souhaitez rediriger vers sth.com/home
window.location.href = "/home";
et si vous voulez, vous voulez rediriger vers sth.com/home/index
window.location.href = "/home/index";