Я столкнулся с некоторыми проблемами в последнее время и не смог найти решение. Я работаю над SportsStore из книги Адама Фримана Pro MVC 4. Посмотрите на это пожалуйста:ReturnUrl не имеет значения, ASP.Net MVC
У меня есть вид под названием Индекс:
@model WebUI.Models.CartIndexViewModel
.
.
.
<p align="center" class="actionButtons">
<a href="@Model.ReturnUrl">Kontynuuj zakupy</a>
</p>
CartController:
{
public class CartController : Controller
{
private IProductRepository repository;
public CartController(IProductRepository repo)
{
repository = repo;
}
public ViewResult Index(string returnUrl)
{
return View(new CartIndexViewModel
{
Cart = GetCart(),
ReturnUrl = returnUrl
});
}
public RedirectToRouteResult AddToCart(int productID, string returnUrl)
{
Product product = repository.Products.FirstOrDefault(p => p.ProductID == productID);
if (product != null)
{
GetCart().AddItem(product, 1);
}
return RedirectToAction("Index", new { url = returnUrl });
}
public RedirectToRouteResult RemoveFromCart(int productId, string returnUrl)
{
Product product = repository.Products.FirstOrDefault(p => p.ProductID == productId);
if (product != null)
{
GetCart().RemoveLine(product);
}
return RedirectToAction("Index", new { url = returnUrl });
}
private Cart GetCart()
{
Cart cart = (Cart)Session["Cart"];
if (cart == null)
{
cart = new Cart();
Session["Cart"] = cart;
}
return cart;
}
}
}
ProductSummary Вид:
@model Domain.Entities.Product
<div class="item">
<h3>@Model.Name</h3>
@Model.Description
@using (Html.BeginForm("AddToCart", "Cart"))
{
@Html.HiddenFor(x => x.ProductID)
@Html.Hidden("returnUrl", Request.Url.PathAndQuery)
<input type ="submit" value="+ Dodaj do koszyka"/>
}
<h4>@Model.Price.ToString("c")</h4>
</div>
и CartIndexModelView:
public class CartIndexViewModel
{
public Cart Cart { get; set; }
public string ReturnUrl { get; set; }
}
И моя проблема на самом деле, что мои <a href="@Model.ReturnUrl">Kontynuuj zakupy</a>
возвращает пустой <a>KontunuujZakupy</a>
HTML, который я думаю, означает, что @Model.ReturnUrl
не получает никакого значения вообще. Я не мог понять, почему, потому что я начинаю, не могли бы вы дать мне понять об этом? Благодарю. // редактировать «Kontynuuj Zákupy» означает Продолжить покупки :)
Я думаю, 'вернуть RedirectToAction ("Index", новый {URL = ReturnUrl});' должен быть ' return RedirectToAction («Index», new {returnUrl = returnUrl}); 'в вашем addtocart и removefromcart ar – Carl
Спасибо большое :) – Sheil