[英]Required for model but initially empty field for View - MVVM
请在这件事上给予我帮助:
我有Enum类型属性的模型。 此属性是必需的,但在View初始值必须为空。 会显示水印..
如果我理解正确,那么模型将不具有可空的属性。 但是viewModel将具有可空性。 这是对的吗?
在这种情况下看起来像:
其他方式是:
Model将具有可空属性并需要验证:
让(域)模型使用不可为空的枚举表明该值必须具有用例和/或数据完整性的有效值。
在UI上要求允许无效值(初始或其他)将导致以下两件事之一:
当View发布一个空值(通过一个专用的ViewModel)并执行检查以确保它不为null(我假设用户从选择框中选择“Please Select”值)服务器将响应一条错误消息说某事比如“请选择一个有效的值等等等等”。 或者,服务器将允许来自视图模型的空值,并将域模型属性默认为某个预定的合理值。
根据我的经验,这种设置会导致令人沮丧的用户体验,因为让UI呈现无效的选择选项,仅在提交时进行反馈(或使用一些前端/客户端验证)是相当烦人的(特别是在长形式,等等)。
也许您最好重新考虑该要求,以便UI仅为选择提供有效的枚举值,并可选择使默认值成为合理的值。
话虽如此,如果你真的希望UI没有有效的初始值,那么使用可以为空的版本创建一个视图模型,并按照你的建议在服务器上进行验证。 至于用可空的方式改变(域)模型,你已经开始担心它不会“对应于现实”这是一个很好的冲动,考虑到你已经提到过这是一个只有UI的要求,因此将细节置于其中分层并保持您的域模态尽可能接近现实,以满足您的用例和/或业务需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.