ASP MVC方式填充下拉列表而不查询数据库

时间:2012-06-19 16:44:11

标签: c# asp.net-mvc drop-down-menu validation

问题

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

尝试解决方案

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

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

1 个答案:

答案 0 :(得分:1)

  

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

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