2009-10-19 13 views

Odpowiedz

4

Wielu operatorów MVC robi coś podobnego do modelu widoku w tym sensie, że zamiast zwracać obiekty domeny do kontrolera, ma spłaszczoną strukturę danych (model widoku) wszystkich danych potrzebnych do tego widoku niezależnie od tego, ile obiektów domeny zawiera wartość danych. W tym względzie model widokowy jest bardzo wykonalny w MVC i jestem pewien, że można go również wykorzystać w formularzach sieciowych. Jednak nie ma sposobu, aby wiedzieć, aby wykonać dwukierunkową agregację danych/poleceń/zdarzeń, która jest związana z MVVM w WPF.

Chociaż nie znam żadnej implimentations Webform można spróbować niektóre z metod opisanych tutaj:
Jimmy Bogard - How we do MVC

Oto bardzo interesujący artykuł na temat jak to zrobić MVP w WinForms:
Castle Windsor's MVP with ASP.NET

Być może możesz utworzyć hybrydę tych dwóch podejść za pomocą formularzy internetowych.

+0

mógłbyś odpowiedzieć http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net? – Lijo

0

Zobacz demo koncepcji ViewModel zrobione prosto i wyraźnie przez Craig Shoemaker. Napisał o tym na blogu here, a próbka kodu to też available.

6

Wypróbuj DotVVM.

Nie jest kompatybilny z Web Forms, ale dzieli się swoimi zasadami (postbacks, kontrole serwera itp.), Rozwiązuje największe problemy (czysty HTML, brak stanu wyświetlania, testowalne modele widoków) i obsługuje zarówno pełny .NET Framework (przez OWIN) i .NET Core.

Nie musisz nawet pisać żadnego javascriptu, używa Knockout JS w tle, framework rozwiązuje dla ciebie wszystko, co dotyczy komunikacji klient-serwer.

Ma również ładne Visual Studio integration i jest open source.

Widoki wyglądać następująco:

<div class="form-control"> 
    <dot:TextBox Text="{value: Name}" /> 
</div> 
<div class="form-control"> 
    <dot:TextBox Text="{value: Email}" /> 
</div> 
<div class="button-bar"> 
    <dot:Button Text="Submit" 
     Click="{command: Submit()}" /> 
</div> 

A ViewModel jest czystym C# klasa.

0

https://github.com/Zhestokus/dotNet-ASP.NET.TwoWayModel mała biblioteka, zapewnia funkcjonalność na wzór podobnego MVC/MVVM bez osoba trzecia JavaScript Ramki

np można wiązać pewne właściwości sterowania do właściwości klasy

<asp:TextBox runat="server" ID="tbxEmail" Property="{SubscriberModel.Email=Text}" /> 
Powiązane problemy