Как использовать ActionResult в onkeyup и onkeydown во входе, тип которого является числом? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь использовать результат действия в функции ввода, вот мой код, моя цель состоит в том, чтобы при вводе пользователем 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; }
}

и другой вопрос? когда пользователь вводит число на входе, какое событие я должен использовать? по изменению()? или другой?

1 Ответ

0 голосов
/ 21 апреля 2020

Не совсем уверен насчет вашего основного вопроса, но насчет второго, вам действительно следует использовать onChange ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...