В приложении ASP.NET MVC у меня есть CartController
с этим AddToCart
действием:
public RedirectToRouteResult AddToCart(Cart cart, decimal productId,
string returnUrl)
{
Product product = productsRepository.Products
.FirstOrDefault(p => p.prodID == productId);
cart.AddItem(product);
return RedirectToAction("Index", new { returnUrl });
}
Когда пользователь отправляет POST-запрос ( «Добавить в корзину» кнопка) на это действие из простого представления ASP.NET MVC, все идет хорошо: продукт добавляется в корзину, а пользователь автоматически перенаправляется на страницу Cart/Index
.
Если товар отправлен из приложения Silverlight (которое находится в представлении ASP.NET MVC), он также успешно добавляется в корзину, но в этом случае нет перенаправления .
В чем проблема? Может быть, это связано с тем, что все запросы от Silverlight являются асинхронными (если я не ошибаюсь), а запрос из общего представления ASP.NET MVC по своей природе является синхронным? Как это может повлиять на перенаправление?
В любом случае, как решить эту проблему?
Отредактировано (добавлено):
Мой код для отправки почтового запроса из приложения Silverlight:
//first build a "paramstring" in the format "productId=126504" and then post it using this
WebClient wc = new WebClient();
wc.Headers["Content-type"] = "application/x-www-form-urlencoded";
wc.UploadStringAsync(new Uri("http://localhost:10930/Cart/AddToCart"), "POST", paramstring, "http://localhost:10930/Products");