2

问题

我有一个视图模型列表。大多数视图模型都有一个下拉输入。当 ModelState 有效时,一切正常,我能够处理输入数据,但是当表单验证中发生错误时,一切都会变得一团糟,因为下拉菜单需要重新填充数据。这有点问题,因为每个视图模型都有不同的下拉列表。

尝试的解决方案

我可以认为每个视图模型并从数据库中获取相应的域模型,但这似乎不是很有效(特别是因为可能有大约 30 个字段,每个字段可能有不同的下拉列表!)。

如果表单验证失败,下拉菜单是否仍然存在?

4

1 回答 1

1

如果表单验证失败,下拉菜单是否仍然存在?

没有什么内置的。一种可能性是Cache这些数据库调用的结果,以避免每次都命中它。因此,您只需拥有从缓存返回列表的方法,或者如果不存在查询数据库,则将结果列表存储到缓存并返回结果。然后,如果发生验证错误,您将调用这些方法来重新填充您的下拉列表。这是一种简单有效的方法,尤其是对于值不经常更改的下拉列表。

于 2012-06-19T16:48:12.407 回答