我在ASP.NET中使用MVC 3。我有一个下拉框,并从数据库中填充它。我在View上使用验证。如果验证失败,我将显示相同的视图,并在ViewDate.ModelState.AddModelError中捕获错误。
我正在检查ViewData.Modelstate.IsValid属性,如果为true,则执行代码,否则在视图中显示错误。
它是在页面中拖拽错误,但是当验证失败时,下拉列表中的选定值会重置。
如何在验证失败时确保所选择的下拉列表不会改变?
答案 0 :(得分:0)
在处理表单提交和验证的操作中,确保在呈现表单视图之前从表单设置模型对象的属性。
例如,在this question中,您可以看到在返回View()时如何重用Create操作中的Dinner对象参数。
答案 1 :(得分:0)
在处理提交的操作中设置断点,并检查属性以获取值列表。如果它为null或空重新加载它。
如果您的下拉列表是通过javascript填充的,则提交时保存值列表的属性可能为空。这在使用级联下拉列表时很常见,例如根据国家/地区加载省/州列表。必须使用处理提交的控制器操作中每个下拉列表的选定值重新加载模型传递到视图后加载的所有级联列表。