2010-09-02 11 views
5

To pytanie noobem, ale będę go prosić tak ...z mvc.net to możliwe, aby dzielić się widok między wieloma działaniami

ja chcąc stworzyć stronę, która będzie wykonywać podstawowe operacje CRUD w sprawie wykazu przedmiotów: -display listy -Edycja element -create element Usuń nie elementu

To wygląda jak będę potrzebował akcję dla każdego z tych operacji. To jest dobre i zrozumiałe. Moje pytanie dotyczy poglądów na interakcję z użytkownikiem.

Chcę mieć edycję w miejscu, więc użytkownik klika na edycji i może edytować szczegóły pozycji na liście. W moim obecnym rozumieniu będę musiał skopiować dużą część widoku pomiędzy "wyświetl listę" i "edytuj element". Jednak wydaje się, że to niepotrzebna redundancja i sprawi, że przyszłe aktualizacje będą bardziej czasochłonne, ponieważ będę musiał zaktualizować każdy widok.

Czy jest łatwiejszy sposób? Czy jestem na dobrej/złej drodze? Jakieś inne komentarze?

Odpowiedz

6

Tak, zdecydowanie. Będziesz chciał użyć przeciążenia z View(), które pobiera ciąg znaków. Łańcuch jest nazwą widoku renderowanego:

public ActionResult MyAction() 
{ 
    return View("MyViewName"); 
} 
0

Uważam, że powinieneś się zajmować renderowaniem częściowych widoków, które są stronami .ascx podobnymi do UserControls w WebForms. Są to w zasadzie udostępnione widoki częściowe, których można używać do tych samych celów w wielu widokach.

Jeśli spojrzysz w domyślny szablon projektu, znajdziesz przykłady elementów, takich jak formant logowania.

Edytuj: Jak zauważyli inni, możesz także udostępniać widoki między akcjami. Miałem też własną chwilę noobową. :)

1

Metoda View() może przyjąć nazwę widoku jako parametr, dzięki czemu można wyświetlić ten sam widok z kilku działań. Domyślnie (jeśli nie zostanie określona nazwa widoku), w ramach architektury zostanie użyty widok nazwany jako bieżące działanie. Zobacz here for details.

Powiązane problemy