我一直在阅读MVVM,到目前为止已经发现它非常有趣.但是,我发现的大多数示例都适用于
Windows应用程序,而不是Web应用程序.我也看到很多提到与Silverlight一起使用的MVVM,我知道Silverlight可以用于Web或Windows应用程序.
所以我的问题是 – MVVM是基于Web的应用程序的有效模式吗?如果是,UI必须是Silverlight吗?我正在决定将哪些技术用于我们需要设计的新中型网站,而Silverlight可能是对权力的硬性销售 – 尽管我们在幕后使用的无关紧要非常.
任何人都可以在网络环境中使用MVVM提供的任何信息都将受到赞赏.示例代码也很棒.
解决方法
DotVVM是一个基于ASP.NET的开源MVVM框架,基于Knockout JS.它使用简单,您不必编写大量的Javascript代码.对于大多数情况,您只需要C#和HTML与CSS.
视图看起来像这样 – 它是一个扩展了HTML的服务器控件和数据绑定:
<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>
viewmodel是一个C#类,如下所示:
public class ContactFormviewmodel { public string Name { get; set; } public string Email { get; set; } public void Submit() { ContactService.Submit(Name,Email); } }
还有Visual Studio Extension增加了IntelliSense和项目模板.