我正在使用MVC3和ASP.NET。我有一个下拉框,并从数据库中填充它。我在视图上使用验证。如果它没有通过验证,我将显示相同的视图,并在ViewDate.ModelState.AddModelError中捕获错误。
我正在检查ViewData.Modelstate.IsValid属性,如果为真,则执行代码,否则在视图中显示错误。
它显示页面中的错误,但在验证失败时,下拉列表中的选定值将被重置。
如何确保验证失败时选定的下拉列表不会更改?
发布于 2011-06-06 21:52:43
在处理表单提交和验证的操作中,确保在呈现表单视图之前设置表单模型对象的属性。
例如,在this question中,您可以看到在返回View()时如何重用创建操作中的晚餐对象参数。
发布于 2015-01-17 11:20:15
在处理提交的操作中设置断点,并检查值列表的属性。如果它为null或空,则重新加载它。
如果您的dropdownlist是通过javascript填充的,那么保存值列表的属性在提交时可能是空的。这在使用级联下拉列表时很常见,例如基于国家/地区加载省/州列表的情况。在将模型传递到视图之后,所有加载的级联列表都必须在处理提交的控制器操作中使用for each dropdownlist的选定值重新加载。
https://stackoverflow.com/questions/6252991
复制相似问题