2011-07-15 8 views
5

Obecnie pracuję nad aplikacją ASP.NET MVC 3, w której mam określony widok, który jest ustawiony jak kreator (za pomocą wtyczki jQuery). Każdy krok kreatora jest częścią pojedynczej formy, gdzie każdy "krok" jest podzielony na swój własny element <div>. Postanowiłem stworzyć częściowe widoki dla zawartości każdego "kroku". Zrobiłem to z kilku powodów. Jedną z nich jest to, że utrzymuje kod dla każdego kroku schludny i zorganizowany. Drugim jest to, że pozwala mi łatwiej/starannie włączyć lub wyłączyć kroki od kreatora po stronie serwera.Czy uważa się za złą praktykę dzielenie pojedynczego formularza na wiele częściowych widoków?

Teraz my „głównym” Widok wygląda mniej więcej tak:

@using (Html.BeginForm) 
{ 
    <div class="step" id="step1"> 
     @Html.Partial("Step1") 
    </div> 

    <div class="step" id="step2"> 
     @Html.Partial("Step2") 
    </div> 
} 

Zastanawiam się, czy robi coś takiego byłoby uznane za złą praktyką i jeśli mam tylko konsolidować kod dla wszystkich „krokach "w jeden widok?

Odpowiedz

2

Nie, nic z natury nie jest w porządku z tym podejściem.

Istnieje niewielki wzrost wydajności, ale prawdopodobnie nie będzie to miało żadnego znaczenia.

Jeśli ułatwi Ci to rozwój i utrzymanie, nie krępuj się.

Edycja: Jeśli obawiasz się mapowania pod-modeli, o czym wspomnieliśmy w komentarzach, rozważ użycie ViewData.ModelMetadata.PropertyName w częściowym widoku, aby wyprowadzić identyfikatory kontrolek wejściowych.

+0

Dzięki Steve. Jedną kwestią, o której mówiłem, jest to, jak postępować z modelem widoku. Zazwyczaj lubię mieć jeden model widoku na widok/częściowy widok. Jeśli utworzyłem modele widoku dla każdego z widoków częściowych, a następnie przekazałem je jako parametry do 'Html.Partial' nie mógłbym potencjalnie uruchomić problemów związanych z wiązaniem, gdy formularz został wysłany z powrotem do serwera/kontrolera? –

+0

Takie podejście może być pomocne również w niektórych przypadkach. Jeśli twój częściowy Krok 2 został zaprojektowany w taki sposób, mógłby zostać ponownie użyty. Na przykład, być może krok 2 może być użyty na stronie tworzenia/wstawiania, a także na stronie, która służy jako funkcja aktualizacji/edycji. –

+0

Dopóki identyfikatory ids pól wejściowych są względne w stosunku do modelu nadrzędnego, nie będzie. Ale jeśli nie zamierzasz ponownie korzystać z częściowych widoków z innymi modelami, nie musisz przekazywać niczego poza głównym modelem. –

Powiązane problemy