Я пытаюсь использовать результат действия в функции ввода, вот мой код, моя цель состоит в том, чтобы при вводе пользователем Keyup или keydown или вводом числа Sum.PervicePrice изменяется. Я не знаю, какое событие является правильным для своей цели я использовал onkeydown и onkeyup events.но ничего не меняется.
<td><input type="number" onkeyup="@Url.Action("CountUp","ShoppingCart",new { id = @item.ProductId })"
onkeydown="@Url.Action("CountDown","ShoppingCart",new { id = @item.ProductId })"
value="@item.ProductCount" min="0" style="width:70px"></td>
и вот мой контроллер
// GET: ShoppingCart
public ActionResult Index()
{
List<ShowShoppingCart> shopcart = new List<ShowShoppingCart>();
if (Session["ShoppingCart"] != null)
{
List<ShopCartItem> shop = Session["ShoppingCart"] as List<ShopCartItem>;
foreach (var item in shop)
{
var product = db.Products.Find(item.ProductId);
shopcart.Add(new ShowShoppingCart()
{
ProductCount = item.ProductCount,
ProductId = item.ProductId,
ProductPrice = product.ProductPrice,
ProductTitle = product.ProductTitle,
Sum = item.ProductCount * product.ProductPrice
});
}
}
return View(shopcart);
}
public ActionResult CountUp(int id)
{
List<ShopCartItem> shop = Session["ShoppingCart"] as List<ShopCartItem>;
int index = shop.FindIndex(s => s.ProductId == id);
shop[index].ProductCount += 1;
Session["ShoppingCart"] = shop;
return RedirectToAction("Index");
}
public ActionResult CountDown(int id)
{
List<ShopCartItem> shop = Session["ShoppingCart"] as List<ShopCartItem>;
int index = shop.FindIndex(s => s.ProductId == id);
shop[index].ProductCount -= 1;
if (shop[index].ProductCount == 0)
{
shop.Remove(shop[index]);
}
Session["ShoppingCart"] = shop;
return RedirectToAction("Index");
}
а это ShopCart
public class ShopCartItem
{
public int ProductId { get; set; }
public int ProductCount { get; set; }
}
и другой вопрос? когда пользователь вводит число на входе, какое событие я должен использовать? по изменению()? или другой?