2009-10-19 9 views

Respuesta

4

Muchos MVC'ers hacen algo parecido a un modelo de vista en el sentido de que en lugar de devolver objetos de dominio al controlador, tienen una estructura de datos plana (un modelo de vista) de todos los datos necesarios para esa vista independientemente de cuántos objetos de dominio valen los datos que contiene. En ese sentido, un modelo de vista es muy factible con MVC, y estoy seguro de que también podría ser aprovechado en formularios web. Sin embargo, no hay forma de que sepa hacer la agregación de datos/comandantes/eventos bidireccionales que está asociada con MVVM en WPF.

Aunque no sé de ningún implimentations WebForm puede probar algunos de los enfoques descritos aquí:
Jimmy Bogard - How we do MVC

Aquí es un artículo muy interesante sobre cómo hacer MVP en Windows Forms:
Castle Windsor's MVP with ASP.NET

Quizás pueda crear un híbrido de estos dos enfoques utilizando formularios web.

+0

Podría por favor responda http://stackoverflow.com/questions/8851933/event-bubbling-and-mvp-asp-net? – Lijo

0

Eche un vistazo a una demostración del concepto de ViewModel hecho de manera simple y clara por Craig Shoemaker. Escribió en su blog sobre él here y el ejemplo de código es available también.

6

Probar DotVVM.

No es compatible con Web Forms, pero comparte sus principios (devoluciones, controles de servidor, etc.), resuelve sus problemas principales (HTML limpio, no viewstate, modelos de vista comprobables) y es compatible con .NET Framework completo (a través de OWIN) y .NET Core.

Ni siquiera necesita escribir ningún javascript, utiliza Knockout JS en el fondo, el marco resuelve todo lo relacionado con la comunicación cliente-servidor para usted.

También tiene un buen Visual Studio integration y es de código abierto.

Las vistas se ven así:

<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> 

Y el modelo de vista es pura clase C#.

0

https://github.com/Zhestokus/dotNet-ASP.NET.TwoWayModel pequeña biblioteca, proporciona funcionalidad para el patrón como el MVC/MVVM sin terceros JavaScript marcos

por ejemplo puede enlazar alguna propiedad de control de propiedad de clase

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