MVC3删除的ModelState错误 [英] MVC3 Remove ModelState Errors

查看:269
本文介绍了MVC3删除的ModelState错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有在那里我上传用户已经从他的本地文件系统中选择一个图像的情况。我在我看来形式,主要有两个提交按钮。一个用于正常提交表单,以及所有执行验证。第二只上传图片,在这种情况下,我不想尚未验证。

我设法给我的上传图片按钮提交的一类价值风格,名称取消关闭客户端验证,因此

 <输入类型=提交名称=UploadImageButtonVALUE =上传图片级=风格的名称,取消/>

现在,当我回来后,我的模型有一个属性UploadImageButton,这个按钮被点击时,它填充这个属性(输入名称的属性匹配)。这样一来,我所知道的表单是否提交了我真正的提交按钮或者通过UploadImageButton。

我的问题是这样的...
我怎样才能关闭服务器端验证?我不想验证摘要信息显示出来,当用户点击这个按钮。我知道你可以添加使用此自定义模型误差

  ModelState.AddModelError({}键,{错误味精});

我在寻找删除模型错误的手段。这可能吗?

编辑:

下面是我想出了:

 的foreach(在ModelState.Keys.ToList()式(键=&GT VAR键。ModelState.ContainsKey(键))){
     //ModelState.Remove(key); //这是我的解决方案之前,
     ModelState中[关键] .Errors.Clear(); //这是我的新的解决方案。感谢bbak
}


解决方案

您可以做这样的事情删除模型误差:

 如果(ModelState.ContainsKey({}键))
    ModelState中[{}键] Errors.Clear()。

I've got a situation where I'm uploading an image the user has selected from his local file system. My Form in my view, basically has two submit buttons. One is used to Submit the form normally, and all validation executes. The 2nd is only for uploading the image, in which case I don't want to validate yet.

I managed to turn off Client Side validation by giving my 'Upload Image' submit button an a class value of "style-name cancel" , so

<input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" /> 

Now, when I post back, my model has a property UploadImageButton, when this button is clicked, it populates this property (Name of the input matches the Property). This way, I know whether the form was submitted by my true Submit button or by the UploadImageButton.

My question is this... How can I turn off ServerSide validation? I don't want the Validation Summary info showing up when the user clicks this button. I know you can add custom model errors using this

ModelState.AddModelError("{key}", "{error msg}");

I'm looking for a means to Remove Model Errors. Is this possible?

EDIT:

Here is what I came up with:

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
}

解决方案

You can remove model errors by doing something like this:

if (ModelState.ContainsKey("{key}"))
    ModelState["{key}"].Errors.Clear();

这篇关于MVC3删除的ModelState错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆