MVC Core, behöver hjälp på traven!
Tjoho alla! Sitter och pillar med en webshop, försöker att få till att när en kund lägger väljer att trycka på "Add to shoppingcart" så skall produkträkningen öka med en, dock svarar det inget bra. Händer ingenting faktiskt. Någon som orkar kika igenom och se vad som kan vara fel?
Denna ligger i min _Layout högst upp
@using System.Net.Http
@using WebShop.Utility
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor HttpContextAccessor
@{
int count = 0;
List<Products> products = HttpContextAccessor.HttpContext.Session.Get<List<Products>>("products");
if(products == null)
{
products = new List<Products>();
}
count = products.Count();
}
****Navmenyn _Layout(tog endast med den det gäller)****
<li class="nav-item">
<a class="nav-link text-light" asp-area="Admin" asp-controller="Product" asp-action="Index">
<i class="fas fa-shopping-cart"></i>
(@count)
</a>
</li>
Detta är min Homecontroller
[HttpPost]
[ActionName("Details")]
public ActionResult Details(int? id)
{
List<Products> products = new();
if (id == null)
{
return NotFound();
}
var product = _db.Products.Include(c => c.ProductTypes).FirstOrDefault(c => c.Id == id);
if (product == null)
{
return NotFound();
}
products = HttpContext.Session.Get<List<Products>>("products");
if(products == null)
{
products = new List<Products>();
}
products.Add(product);
HttpContext.Session.Set("products", products);
return View(product);
}
Details View med Add to shoppingcart
<div class="form-group row">
<div class="col-4">
</div>
<div class="col-8">
<input type="submit" class="btn btn-primary form-control" value="Add to Shoppingcart" />
</div>
<span asp-validation-for="IsAvailable" class="text-danger"></span>
</div>
Detta är min SessionExtensions
public static class SessionExtensions
{
public static void Set<T>(this ISession session, string key, T value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
public static T Get<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) :
JsonConvert.DeserializeObject<T>(value);
}
}
Hmm.. har jag missat att visa något.. Hojta till isåfall!