2

如果您知道 WPF 的 MVVM 模式,那么您就会知道 Josh smith msdn 文章,其中 CustomerViewModel 不包含如下简单属性:

public string FirstName {get;set;}

而是一个 ViewModel 包装一个模型并像这样委托属性访问:

public string FirstName
{
    get { return _customer.FirstName; }
    set
    {
        if (value == _customer.FirstName)
            return;
        _customer.FirstName = value;
        base.OnPropertyChanged("FirstName");
    }
}

我在 asp.net mvc 中没有看到这个。这是因为缺少 INotifyPropertyChanged 接口吗?

4

2 回答 2

2

我在 asp.net mvc 中没有看到这个

这很正常。你不应该看到它。MVC 是一种不同于 MVVM 的模式。在 MVC 中,视图没有人通知任何更改。MVVM 模式不适应 Web 的无状态特性。

于 2012-06-26T18:24:52.917 回答
2

MVVM 中的ViewModelModel片段与在 MVC 中使用时的定义不同

在 MVVM 中,ViewModel就是你的应用程序,而View只是为它提供了一个用户友好的界面。在 MVC 中,View是您的应用程序,ViewModel为它提供数据,并Controller处理应用程序流程和逻辑。

两种模式之间的模型也不同。在 MVC 中,M代表数据模型和视图模型,而在 MVVM 中,M仅代表数据模型。

总而言之,MVCM+C等于 MVVM VM,并且 MVCM包含 MVVMMVM片段的混合

作为旁注,INotifyPropertyChangedWPF 使用该接口在属性更改时自动更新 UI。这种东西在 MVC 中没有使用,所以不需要。

于 2012-06-26T18:35:39.353 回答