Model widoku

0

Witam
Do tej pory udawało mi się unikać korzystania z ViewData używając silnie typowanego modelu. Teraz mam taką sytuacje z którą sobie teoretycznie poradziłem ale nie wiem czy to ma jakiś sens. Potrzebuje przesłać wynik zapytania do widoku ale w tym widoku potrzebuje utworzyć formularz, czyli teoretycznie potrzebuje dwóch silnie typowanych modeli. Stworzyłem więc większy model, który posiada dodatkową właściwość tylko dla tego jednego zapytania, reszta jest null. Dopiero formularz uzupełnia resztę właściwości ale tą dla zapytania zostawia null. I teraz moje pytanie czy takie coś warto robić? Czy nie lepiej to zapytanie przesłać przez ViewData? Jak to można lepiej rozwiązać?

public ActionResult SelectNetwork()
{
    return View(new NetworkDetailsModel() {
        AvailableNetworks = dataSetRepo.Sets
        .Select(x => x.Network)
        .Distinct()
        .ToArray()
    });
}

public ActionResult SelectSet(NetworkDetailsModel networkDetails)
{
    string selectedNetwork = networkDetails.Network;
    return View();
}
0

Czy byłby ktoś w stanie mi pomóc?

1

Ja tak postępuje. Nie lubię bawić się z ViewData, a tak mamy rozwiązanie silnie typowane, gdzie łatwiej debugować i imo lepiej to wygląda.

1

Ja robię podobnie - tworzę klasę w rodzaju SomethingSearchModel, która zawiera pola dla wyszukiwarki oraz pole typu modelu, który jest wynikiem wyszukiwania uzupełnianym w odpowiedniej akcji kontrolera.

0

Dzięki za pomoc.

0

@somekind
Chciałem się jeszcze dopytać, czy te klasy np. SomethingSearchModel i model tworzysz w jednym pliku cs??

1

@Bumcykowy, na ogół tak, bo to zwykle klasy z samymi właściwościami, bez żadnej logiki, za to mocno ze sobą powiązane, więc umieszczenie ich w jednym pliku nie jest zamachem na czytelność.

0

Ok, dzięki.

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