我是ASP.Net的新手,我现在正在学习一本书。
即使我已经完成了每一步,但仍然发生了一些错误。我会尽力解释它。
该应用程序包含一个简单的项目列表并将其添加到购物车。在我的控制器中,我有两个函数Add / Remove,它带有一个productId参数。问题是它没有很好的绑定,因此当我执行代码时,productId参数为null。 在这段代码的有趣部分后......
CartController.cs
namespace SportStore.Controllers {
public class CartController : Controller {
public ViewResult Index(Cart cart, string returnUrl)
{
return View(new CartIndexViewModel
{
Cart = cart,
ReturnUrl = returnUrl
});
}
public RedirectToRouteResult AddToCart(Cart cart, int? productId, string returnUrl)
{
Debug.WriteLine("\n_ _ _ _ _ Product Id selected: " + productId);
Product product = Singleton.GetInstance().Products.GetAll()
.FirstOrDefault(p => p.Id == productId);
if (product != null)
{
cart.AddItem(product, 1);
}
return RedirectToAction("Index", new { returnUrl });
}
...
... Remove function
ProductSummary.cshtml
@model SportStore.Models.Entities.Product
@using SportStore.HtmlHelpers
<div class="well">
<h3>
@Model.Id
<strong>@Model.Name</strong>
<span class="pull-right label label-primary">@Model.Price.ToString("c")</span>
</h3>
@using (Html.BeginForm("AddToCart", "Cart"))
{
<div class="pull-right">
@Html.HiddenFor(x => x.Id)
@Html.Hidden("returnUrl", Request.Url.PathAndQuery)
<input type="submit" class="btn btn-success" value="Add To Cart" />
</div>
}
<span class="lead">@Model.Description</span>
</div>
我不明白的是在视图中正确显示了ID 但是在呼吁采取行动时,它不会传输Id。 我错过了什么? (如果你需要代码的其他部分告诉我,我会把它作为答案)
好吧,如果某人有某些东西可以帮助我,我会很高兴。