Mon premier post...
Lorsque j'utilise RedirectToAction l'url dans le navigateur ne change pas. Comment puis-je y parvenir?
Je suis passer sur ASP.NET MVC 3.0 (également à l'aide de jQuery Mobile) après+ de 10 ans à l'aide de formulaires web. Je suis à environ 8 semaines, et après plusieurs livres et récurer de Google pour une réponse, je suis venue sèche.
J'ai un seul trajet défini Mondiale.asax:
routes.MapRoute(
"Routes",
"{controller}/{action}/{id}",
new { controller = "Shopping", action = "Index", id = UrlParameter.Optional }
J'ai un ShoppingController avec ces actions:
public ActionResult Cart() {...}
public ActionResult Products(string externalId) {...}
[HttpPost]
public ActionResult Products(List<ProductModel> productModels)
{
// do stuff
return RedirectToAction("Cart");
}
L'url quand je fais un get et post (avec le poste ayant le RedirectToAction) est toujours:
/Shopping/Products?ExternalId=GenAdmin
Après le post et RedirectToAction je veux que l'url dans le navigateur pour changer de:
/Shopping/Cart
J'ai essayé de Rediriger, et RedirectToRoute mais d'obtenir les mêmes résultats.
Toute aide serait grandement appréciée.
[Mise à jour] J'ai trouvé que jQuery Mobile AJAX postes sont le coupable ici. Si je désactive jQuery Mobile de l'AJAX, il fonctionne.
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
// do not handle links via ajax by default
$(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; });
</script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.css" />
La commande des scripts ci-dessus est important. J'ai dû inclure le script de jQuery d'abord, puis d'inclure le script pour désactiver jQuery Mobile utilise de l'AJAX et puis d'inclure le script de jQuery Mobile.
Je voudrais encore trouver un moyen d'utiliser AJAX et ont la url de mise à jour correctement. Ou au moins être en mesure d'appeler jQuery Mobile message "chargement" (ou cuire ma propre).