ASP.NET MVC przesylanie danych

Odpowiedz Nowy wątek
2015-07-25 13:57

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

0

Witam,

Mam mały problem. Otuż mam taki kawalek kodu w kontrolerze:

private ProductManager pm = new ProductManager();
private PointOfSaleContext db = new PointOfSaleContext();

public ActionResult Detail(SearchProduct productCode)
{
if (!ModelState.IsValid)
{
return RedirectToAction("Index", "Home");
}
else
{
//szukam produktu w bazie danych
var searchingProduct = db.Products.Where(p => p.ProductId == productCode.Code).Single();
int id = searchingProduct.ProductId;

            //przypisuje go do modelu
            SingleProduct product = new SingleProduct();
            product.product = searchingProduct;

           //id produktu przesylam do metody, ktora dodaje go do listy produktów
            pm.AddToList(id);
            return View(product); //wysylam do widoku
        }
    }

    public ActionResult List()
   {
        //obiekt modelu
       AllItems all = new AllItems();

      //przypisanie do ICollecion<Product> z modelu listy, ktora jest w ProductManager
       all.productList = pm.list;
       return View(all);
   }

Tu jest klasa ProductManager:

public class ProductManager
{
private PointOfSaleContext db = new PointOfSaleContext();
public List<product> list;

    public ProductManager()
    { 
        list = new List<Product>();

    }
    public void AddToList(int id) //dodaje do listy produktow
    {
        var product = db.Products.Where(p => p.ProductId == id).SingleOrDefault();
        list.Add(product);

    }        
}

Problem polega na tym, ze jak probuje odczytac dane w widoku AddToList, ktory jest wywolany na koncu szlaku, to okazuje się, ze lista w ProductManagerze jest pusta i nie wiem czemu tak sie dzieje.

edytowany 3x, ostatnio: Dnk2521, 2015-07-25 14:31

Pozostało 580 znaków

2015-07-25 16:14

Rejestracja: 6 lat temu

Ostatnio: 1 tydzień temu

Lokalizacja: Warszawa

Po pierwsze używaj znaczników kolorujących składnie, o wiele lepiej się to czyta wtedy.

Z każdym requestem tworzony jest nowy obiekt ProductManager. Czyli jak najpierw wywołujesz akcje Detail dodajesz coś tam do tej listy ale nigdzie tego nie zapisujesz, później w akcji List masz już nowy obiekt ProductManager więc lista jest pusta. Zapisz ten produkt w bazie i dopiero stamtąd go pobierz w List

Pozostało 580 znaków

2015-07-25 16:20

Rejestracja: 6 lat temu

Ostatnio: 4 lata temu

0

Dzięki za pomoc i przepraszam za brak kolorowania

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0