我遇到了一种情况,我正在上传用户从其本地文件系统中选择的图像。在我看来,我的表单基本上有两个提交按钮。一个用于正常提交表单,然后执行所有验证。第二个仅用于上传图像,在这种情况下,我还不想验证。
我设法通过为“上传图片”提交按钮提供一个类值“样式名称取消”来关闭客户端验证,因此
<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />
现在,当我回发时,我的模型具有属性UploadImageButton,单击此按钮时,它将填充此属性(输入的名称与该属性匹配)。这样,我知道表单是由我真正的Submit按钮还是UploadImageButton提交的。
我的问题是...如何关闭ServerSide验证?我不希望用户单击此按钮时显示“验证摘要”信息。我知道您可以使用此添加自定义模型错误
ModelState.AddModelError("{key}", "{error msg}");
我正在寻找一种消除模型错误的方法。这可能吗?
编辑:
这是我想出的:
foreach (var key in ModelState.Keys.ToList().Where(key => ModelState.ContainsKey(key))) {
//ModelState.Remove(key); //This was my solution before
ModelState[key].Errors.Clear(); //This is my new solution. Thanks bbak
}
Where(key => ModelState.Keys.Contains(key))
?似乎Where子句是多余的,因为ModelState.Keys中的每个键都会使其ModelState.Keys.Contains(key)返回true。