设置默认值 - 表示逻辑或业务逻辑?

Sid*_*eFX 7 asp.net mvp asp.net-mvc

我想知道是否将SelectList的默认值设置为表示逻辑或业务逻辑?例如,如果要求是没有位置就无法保存员工,但99%的时间选择的位置是特定项目 - 比如亚特兰大.因此,当显示新员工的输入屏幕时,应将位置SelectList默认为亚特兰大.我应该默认模型中还是视图模型中的位置?我意识到的一件事是单元测试变得很尴尬,因为在这两种情况下,我都被迫测试一个始终存在于生产中的位置,但我不能使用我自己的测试数据创建单元测试,除非"亚特兰大"是在测试中使用的一组位置中.一世'

All*_*enG 4

与许多此类问题(主观)一样,答案是:“这取决于情况。”

如果“默认值”是业务默认值(例如,业务位置的默认位置,或者订单上的默认单位数量等),则可能是业务层。这似乎适合您的具体情况。

但是,如果列表的“默认值”只是因为您需要某个值作为默认值,并且您只是要选择索引 0,或者只是要根据用户的位置或系统设置进行选择,那么我会认为这些将是表示层问题。