10
votes

Utilisation de JQuery Post pour MVC 3 ne fonctionne pas lorsqu'il est déployé

J'ai donc cette application MVC 3 qui a une liste déroulante que j'utilise pour peupler un div via JQuery. Cela fonctionne bien localement mais lorsque je le déploie sur le serveur, il se redirige de manière incorrecte. Voici mon jQuery: xxx

localement cela fonctionne bien. Mais lorsqu'il est déployé sur mon serveur, il semble rechercher http: // myServer / home / catégorie au lieu de http: // myserver / mywebsite / home / catégorie

Je peux le réparer en ajoutant simplement Le nom de ma demande avant la / la maison / la catégorie de la fonction JQuery, mais qui ne se sent pas correct ...

J'ai aussi essayé d'ajouter .. /, ~ /,. ../ avant la / la maison mais cela n'a fait aucune différence.

Toute solution à ce problème mineur? Merci!


0 commentaires

3 Réponses :


13
votes

Option 1 forte>

En supposant que votre méthode JQuery est à votre vue, vous pouvez utiliser url.action () code> p>

génère une URL entièrement qualifiée à un Méthode d'action en utilisant le spécifié Nom d'action et nom du contrôleur. P> blockQuote> xxx pré>

ou ceci si vous utilisez RAZOR P>

$("#ddlCategoryMain").change(function () {
    $.post(myUrl , { mileID: $(this).val() }, function (data) {
        refreshDiv($("#main"), data);
    });
});


2 commentaires

Merci! Votre première option est quelque chose que je cherchais, mais d'une manière ou d'une autre devait avoir mal à faire car cela ne fonctionnait pas. Il fait maintenant!


Est-ce que quelqu'un sait pourquoi ça ne fonctionne pas sans URL.Action ()?



0
votes

Pas une réponse directe, mais c'est comme ça que je le fais sur mon site Zend MVC, lorsque j'ajoute mon jQuery - j'ai défini un VaR comme URL de base - alors dans l'appel Ajax, placez le var devant le chemin .

Donc, pour moi, je ferais: xxx

puis je pourrais utiliser; xxx


0 commentaires

2
votes

Nous étions confrontés au même problème lorsque nous avons déployé le code sur le serveur, il a été très bien fonctionné, donc cela nous a permis beaucoup.

Nous utilisons RAZOR et c'est ce que nous faisions: P>

$.post('@Url.Action("PostEditProduct","Home")', { } ...


1 commentaires

Utiliser @ URL.Action (..) est toujours une bonne décision avec MVC! Ne chancez jamais le code du chemin, vous pouvez donc changer de manière dynamique des itinéraires de manière dynamique.