Tôi có một phương pháp:Return to url hiện tại trong 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() });
}
Bạn thấy dòng đó là nhận xét ra: Tôi muốn có không kích hoạt bất kỳ chuyển hướng nhưng chỉ nghỉ trên cùng một trang từ nơi yêu cầu này được thực hiện.
Nếu tôi đặt return View()
nó không phải là tốt vì nó sẽ tìm kiếm View với tên này trong khi phương pháp này là một hành động đơn giản để thêm vào giỏ hàng ..
bạn có thể vui lòng cho tôi một giải pháp làm thế nào để Chuyển tới hiện tại url hoặc để ở trên cùng một trang?
Như "dễ dàng" vì nó là để lấy referrer, tôi nghĩ rằng đây là một giải pháp tốt hơn. Nó hoạt động hiệu quả hơn, nhưng tôi tin nó mang đến cho bạn một kết quả vững chắc hơn. Ở bên trượt, bạn có thể _try_ sử dụng 'returnUrl' và mặc định là' Request.Referrer'. Một cách tiếp cận gần như chống đạn hơn là tạo một HtmlExtender (có thể là 'Html.ActionLinkWithReturnUrl (...)'?) –
@BradChristie, cá nhân tôi không sử dụng 'Referrer'. Không biết tại sao. Chỉ cần không thích nó. –
Bất cứ thứ gì mà bạn dựa vào mọi thứ trong môi trường không quốc tịch cũng sẽ mang lại cho tôi các cảnh quan; vì vậy tôi ở bên bạn –