我有一個方法:返回當前URL在asp.net mvc的
public ActionResult AddProductToCart(int productId)
{
var product = _productService.GetProductById(productId);
if (product == null)
return RedirectToAction("Index", "Home");
int productVariantId = 0;
if (_shoppingCartService.DirectAddToCartAllowed(productId, out productVariantId))
{
var productVariant = _productService.GetProductVariantById(productVariantId);
var addToCartWarnings = _shoppingCartService.AddToCart(_workContext.CurrentCustomer,
productVariant, ShoppingCartType.ShoppingCart,
string.Empty, decimal.Zero, 1, true);
if (addToCartWarnings.Count == 0)
//return RedirectToRoute("ShoppingCart");
else
return RedirectToRoute("Product", new { productId = product.Id, SeName = product.GetSeName() });
}
else
return RedirectToRoute("Product", new { productId = product.Id, SeName = product.GetSeName() });
}
你看這是註釋掉行:我希望這不會引發來自同一頁面上的任何重定向,但只是停留請求的地址是。
如果我把return View()
它不是很好,因爲它會爲瀏覽搜索這個名字,而這個方法是一個簡單的動作添加到購物車..
能否請您給我如何重定向到當前的解決方案網址或留在同一頁面?
作爲抓住推薦人的「簡單」,我認爲這是一個更好的解決方案。預先做更多的工作,但我相信它會給你一個更堅實的結果。另一方面,您可以使用'returnUrl'並默認使用'Request.Referrer'。一個更加防彈的方法是創建一個HtmlExtender(也許''Html.ActionLinkWithReturnUrl(...)'?) – 2012-02-20 20:24:40
@BradChristie,我個人不使用'Referrer'。不知道爲什麼。只是不喜歡它。 – 2012-02-20 20:26:31
任何你在無國籍環境中依賴事物的東西都會給我帶來意志。所以我和你在一起。 – 2012-02-20 20:27:32