我目前允许选择列表的初始值为""。用户可以选择是填写此选项还是将其保留为默认值。
此selectList适用于ID,ID将传递给我的控制器。但是,由于未选择int,因此ModelState结果为False,因为输入是空字符串而不是int。
我想将此空字符串的值更改为0.这将导致ModelState为True。我一直在查看ModelState字典类,以便在检查ModelState之前可以更改键值对。但是,我无法成功使用它 https://msdn.microsoft.com/en-us/library/system.web.mvc.modelstatedictionary(v=vs.118).aspx
非常感谢任何帮助。
答案 0 :(得分:19)
尝试使用
ModelState.SetModelValue("PropertyID", new ValueProviderResult("New value", "", CultureInfo.InvariantCulture));
这是一篇有用的文章。
答案 1 :(得分:5)
你可以删除错误
if (ModelState.ContainsKey("{key}"))
ModelState["{key}"].Errors.Clear();
if (ModelState.IsValid)
{
}