asp.net 中的视图模型是否与 WPF 中的视图模型相当



如果您知道 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 接口吗?

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

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

MVVM 中的 ViewModelModel 部分的定义与 MVC 中使用的定义不同

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

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

总而言之,MVC 的M+C等于 MVVM 的VM,而 MVC 的M包含 MVVM 的MVM部分的混合。

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

相关内容

  • 没有找到相关文章

最新更新