是否可以在ASP.NET MVC项目中利用ICommand?

基本上,我正在创建一个可移植的类库,并创建一堆ViewModel:

public class CustomerViewModel : ViewModelBase { public string FirstName { ... } // INPC public string LastName { ... } // INPC public string FullName { get { return FirstName + " " + LastName; } } public ICommand DoFooCommand { get; private set; } // DelegateCommand private bool CanDoFoo(object parameter) { ... } private void DoFoo(object parameter) { ... } } 

如果我想要WinRT和WPF应用程序的可重用性,这很好,但是我如何利用这个类用于ASP.NET MVC网站? 似乎我必须将这个类所做的一切都包装到Controller中。 此外,ICommand甚至可用于ASP.NET MVC应用程序吗?

我真的不希望有一个客户端MVVM javascript库,它只是我的视图模型的重新编码版本。

在MVC ViewModels中直接使用它至少是毫无意义和function失调的。 这是因为与WPF中的MVVM不同,ViewModel的实例不会跨交互(点击,POST等)保留,而是重新创建。 因此整个INPC(INotifyPropertyChanged)不起作用。

ICommand需要根据视图数据绑定的其他属性启用/禁用,但MVC中的数据绑定(可以这么说)是一次性(渲染),这也会使这个概念变得无用。

抱歉,MVVM和MVC不兼容。 几年前我遇到了同样的问题,试图跨平台重用东西,但我做不到。 甚至没有使用T4(文本模板),我试图将(WPF-ish)ViewModel类转换为更可接受的MVCforms。