问题标签 [modelstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
491 浏览

asp.net - 防止在 ModelState 中保留值

再会!

ModelStateASP.NET MVC 通过在内部存储 GET/POST 循环期间的输入值并在出现验证错误时自动将它们放入输入中来做得很好。

但是在我的表单上,我有验证错误期间不应保留的 CAPTCHA 字段(每个请求都会重新生成 CAPTCHA 值)。

我试图通过设置来实现这一点

但它不起作用。

可能有一个属性可以应用于我的模型字段以防止它保留在 ModelState 中?

提前致谢!

0 投票
2 回答
2534 浏览

asp.net-mvc - 如何在验证摘要中添加图像以及错误消息?

我想在验证摘要中显示带有成功图像(绿色勾号)和失败图像(红色警告)的错误消息。这该怎么做。我验证摘要我将不得不以粗体、斜体等显示一些文本,因为我试图传递这样的字符串。

但在页面中,它的呈现原样。它没有以粗体显示用户名和密码。有没有办法做到这一点。我在控制器中收到此验证错误消息并将其添加到 ModelState.add(error);

0 投票
2 回答
881 浏览

c# - AllowHtml、HttpRequestValidationException 和 ModelState

我有这个视图模型

我不想在其中抛出带有 html的HttpRequestValidationExceptionif提交,而是向. 我怎么能那样做?.FooModelState

0 投票
1 回答
375 浏览

asp.net-mvc-3 - MVC 3 - 当 ModelState 无效时,使用集合中的集合重新填充 ViewModel 属性

我有一个 ViewModel 有几个属性,其中包含用于在表单中填充 DropDowns 的集合。在 get Action 中,这些属性被填充,然后视图被正确渲染。

当用户提交表单时,在 Post 操作中,我的 ViewModel 包含表单中填写的所有数据,但所有集合属性均为空,因为浏览器不发送它们。没关系,当 ModelState 有效时,我不再需要它们了。但是,当 ModelState 无效时,我需要再次显示表单以更正错误。

MVC 是否将这些集合临时存储在任何地方,因为 ViewModel 属性可以很容易地填充与 get 操作中相同的值,还是我必须手动填充它们(从缓存或新查询到 db)?

我想,MV​​C 存储原始值,因此可以在后期操作的验证期间使用它们,但我想不通。

谢谢

0 投票
5 回答
32690 浏览

asp.net-mvc - 使用 ModelState.Remove 处理 ModelState 是否正确?

我正在开发一个大型 MVC3 Web 应用程序,并且对该ModelState.IsValid方法感到烦恼。

我几乎所有的控制器都使用了 ModelState 来验证发布的数据。这些视图都基于包含不同类的 ViewModel,这些类显然包含可以标记为的属性[Required]

我遇到的问题是有时不需要所需的属性,我必须使用该ModelState.Remove方法才能ModelState.IsValid实现。

我的问题是通过使用ModelState.Remove,这是正确的做事方式还是有更有效的方法。

0 投票
1 回答
380 浏览

c# - 当操作类型为:RedirectToRouteResult 时在视图中显示错误

下面的代码没有在视图中显示我的错误,如何确保我的错误显示在视图中?

//注意,如果某处出现问题,我会抛出规则异常,如果是这样,我会将错误复制到模型状态

ex.CopyTo 扩展方法:

在我看来,我基本上有:

我认为模型状态被清除并且重定向上没有错误???

0 投票
1 回答
253 浏览

validation - 仅在复选框为真时验证字段 (ASP.NET-MVC3)

我有一个表单,其中有默认隐藏的字段,只有在用户选中“附加信息”复选框时才可见。我希望这些字段在客户端和服务器端都针对数据注释属性(例如必需、字符串长度、匹配正则表达式等)进行验证,但前提是选中了“附加信息”复选框。

数据注释中是否有内置解决方案?

最好的解决方案是只修改我的视图模型,但如果我需要通过在控制器中编写自定义代码来弄脏我的手,那就这样吧。

我希望能够使用 ModelState.IsValid 之类的东西,因此如果没有其他方法,也可以选择篡改模型状态。

你能为此提出一些好的解决方案吗?

0 投票
2 回答
2004 浏览

asp.net-mvc - 如何访问 FormCollection、ViewData 和 ModelState

除了直接在视图中工作之外,在 ASP.NET MVC 应用程序中运行时,是否有任何方法可以访问当前正在运行的请求的 FormCollection、ViewData、ModelState 等?我希望能够从视图中调用一些自定义处理程序,但无需传递它们即可访问这些集合。我在想一些类似于 HttpContext.Current 在网络表单中的东西?

0 投票
1 回答
2183 浏览

json - ASP.NET MVC 3 ModelState.IsValid 始终为使用 Ext.Direct 的 JSON 编码数据返回 true

我有一个表格,唯一需要的项目是客户姓名。所以在我的模型中,我有:

以前,我在写一篇 HTML 帖子,一切正常,包括验证。

现在,我使用 Ext.direct.mvc ( http://code.google.com/p/ext-direct-mvc/ ) 对表单进行了“ajaxified”,这是一个重要的事实,并在 Json 中发布数据格式并且数据已成功发布。

在此处输入图像描述

当我在我的代码中放置断点时(目前为调试目的而修改):

我看到 CustomerOrderModel.CustomerOrderHeader.CustomerName = ""

在此处输入图像描述

但是 ModelState.IsValid 是真的。

在此处输入图像描述

现在对于我尝试过的一些事情:

  1. 我在检查 ModelState.isValid 之前插入了以下代码,以确保 CustomerName = null

    customerOrderModel.CustomerOrderHeader.CustomerName = null;

  2. 我尝试使用 TryUpdateModel(customerOrderModel) 但收到以下错误消息:

    TryUpdateModel 引发了“System.MissingMethodException”类型的异常

  3. 我尝试修改 json 数据,以便将“root”“CustomerOrderHeader”重命名为“customerOrderModel”以匹配参数。

这些事情都没有奏效。那么我做错了什么,验证不再起作用?我可以采取哪些步骤来调试问题?

编辑辅导员Ben

在此处输入图像描述

编辑 2 为辅导员本

在此处输入图像描述

0 投票
1 回答
510 浏览

asp.net-mvc-2 - asp.net-mvc2 - 不使用模型的强类型助手?

在 MVC2 中使用强类型帮助器时,在发布帖子时输入字段值不会从 Model 属性中获取。这是默认行为吗?

带有强类型助手的(强类型)视图:

控制器动作:/Product/Edit/5

html输出:

控制器动作:/Product/Edit/5

表单发布后的 HTML 输出(下面我希望 id="Name" 的输入值是“prrrrrrd 2。强类型帮助器从哪里获得它的值?):