11
votes

Voir pas rafraîchissant après Ajax Post

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: xxx pré>

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> xxx pré>

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);

}


2 commentaires

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.


4 Réponses :


19
votes

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
});


1 commentaires

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.



4
votes

Après Ajax Post, vous devez appeler à une URL spécifique .. comme ça.. fenêtre.location.href = URL


0 commentaires

0
votes

Lorsque vous utilisez jquery.post La nouvelle page est renvoyée via la méthode .done

jQuery xxx

html xxx


0 commentaires

0
votes

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);
    }
});


0 commentaires