Asp.net C Ürünü Sepete Ekleme

ASP.NET Core’da Ürün Sepete Ekleme

ASP.NET Core, web uygulamaları oluşturmak için kullanılan bir açık kaynaklı çerçevedir. ASP.NET Core ile e-ticaret uygulamaları geliştirmek oldukça kolaydır. Bu makalede, ASP.NET Core’da ürün sepete ekleme işleminin nasıl yapılacağını adım adım anlatacağız.

1. Adım: Proje Oluşturma

İlk olarak, Visual Studio’da yeni bir ASP.NET Core projesi oluşturun. Proje türü olarak “Web Uygulaması”nı seçin.

2. Adım: Veritabanı Oluşturma

Ürünleri ve sepet öğelerini saklamak için bir veritabanı oluşturmamız gerekiyor. Bu örnekte, Entity Framework Core kullanarak bir SQLite veritabanı oluşturacağız.

dotnet add package Microsoft.EntityFrameworkCore.Sqlite

Ardından, aşağıdaki komutları çalıştırarak veritabanını oluşturabilirsiniz:

dotnet ef migrations add InitialCreate
dotnet ef database update

3. Adım: Modeller Oluşturma

Ürünleri ve sepet öğelerini temsil eden modeller oluşturalım.

“`
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}

public class CartItem
{
public int Id { get; set; }
public int ProductId { get; set; }
public int Quantity { get; set; }
}
“`

4. Adım: Bağlam Oluşturma

Veritabanına erişmek için bir bağlam sınıfı oluşturalım.

“`
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions options)
: base(options)
{
}

public DbSet<Product> Products { get; set; }
public DbSet<CartItem> CartItems { get; set; }

}
“`

5. Adım: Ürünleri Veritabanına Ekleme

Örnek olarak birkaç ürünü veritabanına ekleyelim.

“`
using (var db = new AppDbContext())
{
db.Products.AddRange(new[]
{
new Product { Name = “Elma”, Price = 10 },
new Product { Name = “Armut”, Price = 15 },
new Product { Name = “Muz”, Price = 20 }
});

db.SaveChanges();

}
“`

6. Adım: Ürünleri Listeleme

Ürünleri listelemek için bir kontrolcü oluşturalım.

“`
public class ProductsController : Controller
{
private readonly AppDbContext _db;

public ProductsController(AppDbContext db)
{
    _db = db;
}

public IActionResult Index()
{
    var products = _db.Products.ToList();
    return View(products);
}

}
“`

Ardından, ürünlerin listelendiği bir görünüm oluşturalım.

“`
@model IEnumerable

Ürünler

    @foreach (var product in Model)
    {

  • @product.Name – @product.Price TL
  • }

“`

7. Adım: Sepete Ekleme İşlemi

Ürünleri sepete eklemek için bir kontrolcü oluşturalım.

“`
public class CartController : Controller
{
private readonly AppDbContext _db;

public CartController(AppDbContext db)
{
    _db = db;
}

public IActionResult AddToCart(int productId)
{
    var product = _db.Products.Find(productId);

    var cartItem = _db.CartItems.FirstOrDefault(ci => ci.ProductId == productId);
    if (cartItem == null)
    {
        cartItem = new CartItem
        {
            ProductId = productId,
            Quantity = 1
        };

        _db.CartItems.Add(cartItem);
    }
    else
    {
        cartItem.Quantity++;
    }

    _db.SaveChanges();

    return RedirectToAction("Index", "Products");
}

}
“`

8. Adım: Sepeti Listeleme

Sepeti listelemek için bir kontrolcü oluşturalım.

“`
public class CartController : Controller
{
private readonly AppDbContext _db;

public CartController(AppDbContext db)
{
    _db = db;
}

public IActionResult Index()
{
    var cartItems = _db.CartItems.Include(ci => ci.Product).ToList();
    return View(cartItems);
}

}
“`

Ardından, sepetin listelendiği bir görünüm oluşturalım.

“`
@model IEnumerable

Sepet

    @foreach (var cartItem in Model)
    {

  • @cartItem.Product.Name – @cartItem.Quantity x @cartItem.Product.Price TL
  • }

“`

9. Adım: Sepetten Ürün Silme

Sepetten ürün silmek için bir kontrolcü oluşturalım.

“`
public class CartController : Controller
{
private readonly AppDbContext _db;

public CartController(AppDbContext db)
{
    _db = db;
}

public IActionResult RemoveFromCart(int cartItemId)
{
    var cartItem = _db.CartItems.Find(cartItemId);

    _db.CartItems.Remove(cartItem);
    _db.SaveChanges();

    return RedirectToAction("Index");
}

}
“`

10. Adım: Sipariş Oluşturma

Sipariş oluşturmak için bir kontrolcü oluşturalım.

“`
public class OrdersController : Controller
{
private readonly AppDbContext _db;

public OrdersController(AppDbContext db)
{
    _db = db;
}

public IActionResult Create()
{
    var order = new Order();
    return View(order);
}

[HttpPost]
public IActionResult Create(Order order)
{
    if (ModelState.IsValid)
    {
        _db.Orders.Add(order);
        _db.SaveChanges();

        return RedirectToAction("Index");
    }

    return View(order);
}

}
“`

Ardından, siparişin oluşturulduğu bir görünüm oluşturalım.

“`
@model Order

Sipariş Oluşturma






“`

Faydalı Siteler

İlgili Dosyalar


Yayımlandı

kategorisi