【问题标题】:Is the ViewModel in asp.net comparable to the ViewModel in WPFasp.net 中的 ViewModel 是否与 WPF 中的 ViewModel 可比
【发布时间】:2012-06-26 18:23:06
【问题描述】:

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

public string FirstName {get;set;}

ViewModel 包装了一个 Model 并像这样委托属性访问:

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

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

【问题讨论】:

    标签: wpf asp.net-mvc viewmodel


    【解决方案1】:

    我在asp.net mvc中没见过这个

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

    【讨论】:

    • 很好,你说的是“网络的无状态性质”而不是“asp.net”;-)
    【解决方案2】:

    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中没有用到,所以不需要。

    【讨论】:

    • 你有官方的 MS 链接,上面写着 MVC 中的“M”代表(模型和视图模型)?没听说过。
    • @Pascal 不,我没有官方的 MS 链接,这只是我自己对模式的定义。我从 MVVM 开始,最近一直在使用 MVC,ModelsViewModels 的不同定义确实让我困惑了一段时间。 MVC 中的 ViewModel 是一个数据模型,旨在包含视图的数据,而 MVVM 中的 ViewModel 旨在包含应用程序逻辑和命令处理等内容以及特定于视图的数据。
    • MVVM 中的视图模型之所以具有应用程序逻辑和命令处理,是因为它背后的技术。 MVC 和 MVVM 两种模式都有视图模型,用于验证作为应用程序逻辑的输入逻辑。 ViewModel 包含 asp.net mvc 和 wpf 和 mvvm 中的视图数据。除了绑定/命令等技术之外,我没有看到任何区别......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多