Asp.net mvc 强类型视图模型,如果模型无效,则重新呈现选择列表

Asp.net mvc 强类型视图模型,如果模型无效,则重新呈现选择列表,asp.net-mvc,asp.net-mvc-3,razor,repository,viewmodel,Asp.net Mvc,Asp.net Mvc 3,Razor,Repository,Viewmodel,好的,我看了一下,找不到这个问题的好答案 使用ASP MVC3,我有一个强类型的ViewModel,其中包含从存储库检索的自定义对象列表。我使用DropDownListFor作为下拉选择进行渲染。选择了一个值,在发布期间,我有一个自定义活页夹,可以将我选择的值重新绑定到自定义对象…生活很好 我检查了我的Model.IsValid,但由于某种原因它无效。哦,哦…我需要再次显示视图,但我没有所有选项的完整列表。有没有办法在自定义模型绑定器或其他方法中重新填充所有选择选项值,或者我必须再次访问存储库

好的,我看了一下,找不到这个问题的好答案

使用ASP MVC3,我有一个强类型的ViewModel,其中包含从存储库检索的自定义对象列表。我使用
DropDownListFor
作为下拉选择进行渲染。选择了一个值,在发布期间,我有一个自定义活页夹,可以将我选择的值重新绑定到自定义对象…生活很好

我检查了我的Model.IsValid,但由于某种原因它无效。哦,哦…我需要再次显示视图,但我没有所有选项的完整列表。有没有办法在自定义模型绑定器或其他方法中重新填充所有选择选项值,或者我必须再次访问存储库


谢谢。

我通常会再次重建列表并发送回视图。通常,我会使用factory方法使用必要的列表对viewmodel进行充气。希望由于客户端验证以及您现在使用的服务器端验证,很少会出现无效模型。

我通常会再次重建列表并发送回视图。通常,我会使用factory方法使用必要的列表对viewmodel进行充气。希望由于客户端验证以及您现在使用的服务器端验证,很少会出现无效模型。

您再次访问存储库。使用MemoryCache在存储库中实现缓存,以保存数据库命中数并按键缓存。这是存储库模式的优点,调用者不知道。因为根据定义,存储库本质上是内存中的表示,所以这非常有用

检查一下这里的实现,它与我使用的类似,而且效果很好。


您当前选择的项目应保持选中状态,因为HTML帮助程序会从发布的数据中读取并重新使用它。

您再次访问存储库。使用MemoryCache在存储库中实现缓存,以保存数据库命中数并按键缓存。这是存储库模式的优点,调用者不知道。因为根据定义,存储库本质上是内存中的表示,所以这非常有用

检查一下这里的实现,它与我使用的类似,而且效果很好。


您当前选择的项目应该保持选中状态,因为HTML帮助程序从发布的数据中读取并重新使用它。

谢谢,这就是我的想法。我还没有谈到缓存部分,它在我的待办事项列表中:)谢谢,这就是我的想法。我还没有谈到缓存部分,它在我的待办事项列表中:)我同意。我希望客户端验证能够抓住这些问题。我之所以遇到这个问题,是因为我开发了一个定制的ValidationAttribute,而且我还没有实现客户端代码。我同意。我希望客户端验证能够抓住这些问题。我之所以遇到这个问题,是因为我开发了一个定制的ValidationAttribute,而我还没有实现客户机代码。