J'ai une vue (index.cshtml) avec une grille (infranguisse JQuery Grid) avec un ImagElink. Si un utilisateur clique sur ce lien, la fonction JQuery suivante sera appelée: a commenté que vous pouvez voir une alerte pour moi-même et 2 tentatives pour actualiser la vue. L'emplacement.Reload () fonctionne, mais est essentiellement trop de travail pour le navigateur. Le .html (résultat) publie l'intégralité index.cshtml + layout.cshtml Double Double dans les remarques Div. Donc, ce n'est pas correct. P> C'est l'action informatique appelle (SetendDateremarkToyeDay): p> C'est l'action qu'il redirige: p> [HttpGet]
public ActionResult Index() {
//Some code to retrieve updated remarks.
//Remarks is pseudo for List<Of Remark>
return View(Remarks);
}
4 Réponses :
Lorsque vous demandez à Ajax Call, vous devez rediriger à l'aide de sa réponse
Modifier votre contrôleur pour revenir à JSONRESUT avec URL de l'atterrissage: P>
$.post("Home/SetEnddateRemarkToYesterday", { remarkID: remarkID }, function (result) { window.location.href = result.Url });
Testé-le. Travaille comme Satpal suggère. En fin de compte, je suis allé pour avoir mis la grille sur une vue partielle cependant. Cela semble plus en ligne avec l'architecture MVC pour moi. Merci d'avoir répondu à Satpal.
Après Ajax Post, vous devez appeler à une URL spécifique .. comme ça.. fenêtre.location.href = URL p>
Lorsque vous utilisez jquery.post strong> La nouvelle page est renvoyée via la méthode html p>
jQuery
pour moi cela fonctionne. Premièrement, j'ai créé ID = "Recharger" dans mon formulaire, puis en utilisant la solution fournie par Colin et à l'aide de données AJAX envoyées sur le contrôleur et à rafraîchir mon formulaire.
qui regarde mon contrôleur: P>
$.ajax({ url: "/Controller/Action", type: 'POST', data: { __RequestVerificationToken: token, // if you are using identity User someData: someData }, success: function (data) { console.log("Success") console.log(data); var parser = new DOMParser(); var htmlDoc = parser.parseFromString(data, 'text/html'); // parse result (type string format HTML) console.log(htmlDoc); var form = htmlDoc.getElementById('reload'); // get my form to refresh console.log(form); jQuery('#reload').html(form); // refresh form }, error: function (error) { console.log("error is " + error); } });
Mieux vaut faire des remarquesGrid une vue partielle et renvoyer une vue partielle à la méthode SetendDateremarkToyIday.
@ SSILAS777 Vous avez raison. J'ai réalisé que le lendemain de mon après avoir posté ceci, c'est la solution que je suis allé. Merci d'avoir répondu.