Мой первый пост ...
Когда я использую RedirectToAction, URL в браузере не меняется.Как мне этого добиться?
Я перехожу на ASP.NET MVC 3.0 (также использую jQuery Mobile) после 10+ лет использования веб-форм.У меня около 8 недель, и после нескольких книг и поиска в Google ответа, я выхожу на улицу.
У меня есть единственный маршрут, определенный в Global.asax:
routes.MapRoute(
"Routes",
"{controller}/{action}/{id}",
new { controller = "Shopping", action = "Index", id = UrlParameter.Optional }
У меня есть ShoppingController с этими действиями:
public ActionResult Cart() {...}
public ActionResult Products(string externalId) {...}
[HttpPost]
public ActionResult Products(List<ProductModel> productModels)
{
// do stuff
return RedirectToAction("Cart");
}
URL, когда я делаю получение и публикацию (с публикацией, имеющей RedirectToAction) всегда:
/Shopping/Products?ExternalId=GenAdmin
Послесообщение и RedirectToAction Я хочу, чтобы URL-адрес в браузере изменился на:
/Shopping/Cart
Я пробовал Redirect и RedirectToRoute, но получаю те же результаты.
Любая помощь будет принята с благодарностью.
[Обновление] Я обнаружил, что сообщения JQuery Mobile AJAX являются виновником здесь.Если я отключу AJAX от jQuery Mobile, он будет работать.
<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" />
Порядок перечисленных выше скриптов важен.Сначала мне нужно было включить сценарий в jQuery, затем включить сценарий, чтобы отключить использование AJAX в jQuery Mobile, а затем включить сценарий в jQuery Mobile.
Я все же хотел бы найти способ использовать AJAX иURL обновляется правильно.Или, по крайней мере, иметь возможность вызывать «загрузочное» сообщение jQuery Mobile (или выпекать мое собственное).