【发布时间】:2015-07-26 01:10:39
【问题描述】:
我正在使用 c# 和 MVVM 模式编写程序。该程序具有在线连接,需要登录。我创建了一个模型类来处理登录过程。
登录过程是这样的:登录凭据(用户名和密码)被发送到在线登录页面,成功登录后,服务器发送回登录 cookie。我将这些 cookie 存储在本地,并将它们与来自服务器的每个请求一起发送,直到它们过期。
我在模型中创建了一个 GetLoginCookies() 方法,我希望它是获取登录 cookie 的唯一方法。该方法的登录方式如下:获取存储的登录cookie,并与服务器进行验证。如果没有登录 cookie,或者它们无效(例如过期),则询问用户新的凭据,并将它们发送到服务器并获取新的登录 cookie。
我想用一种方法处理所有事情的原因是,我想有一种方法,它总是给我有效的登录 cookie(或中止操作),我可以在与服务器进行任何通信之前使用它。
我的问题是,在使用 MVVM 模式时实现用户输入的最佳方式是什么?
【问题讨论】:
-
如果用户需要输入内容,请使用文本框。
-
我不相信你完全正确地掌握了 MVVM。模型(M)一般只包含data,不负责流程逻辑。我推荐这篇文章 - Implementing the Model-View-ViewModel Pattern。问候
-
@Micky Duncan:在这种情况下,逻辑在哪里?据我了解,视图模型用于特定于视图的逻辑。那么通用逻辑去哪儿了呢?
-
@MickyDuncan:这是一种相当过时的“模型”建模方式,称为贫血域模型。许多专家推荐富域模型,其中属于模型的模型放在模型类中。不属于模型的逻辑进入服务并保持服务层薄。无论如何,在这种情况下,登录机制无论如何都会转到服务,因为它不是特定于模型的逻辑。但是,如果您有“将产品添加到订单”功能,它显然会转到富域模型中的订单模型类,而不是服务中
-
@Tseng 对我来说听起来像是一个臃肿的模型,但不要相信我的话,看看 Blackbird Interactive 如何在他们的 Unity 3D 游戏中使用 MVVM youtube.com/…
标签: c# wpf mvvm user-interaction