问题标签 [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 投票
3 回答
13453 浏览

c# - 与模型状态错误消息相反的成功消息

对于错误消息、验证错误等,您有

但是,您将诸如“您成功地将很多钱转移给您的前任”之类的成功回复放在哪里。+“您的余额现在为零”。我仍然想在控制器级别设置它,最好以键值方式设置,与错误消息相同,但不会使模型状态无效。

这通常是怎么做的?查看数据?

0 投票
2 回答
7314 浏览

asp.net-mvc - 如果 ModelState 中不存在某个键,我该如何添加它?aspnetmvc1

我正在尝试在我的控制器中创建一个解决方法来处理 ASP.NET MVC v1 中的错误。如果您发布没有选择任何内容的列表框(http://forums.asp.net/p/1384796/2940954.aspx),则会出现该错误。

快速说明:我有一份报告,它接受来自文本框的两个日期和来自列表框的一个或多个选择。如果列表框没有选择任何内容,则除了验证之外一切正常。

当表单发布并到达我的控制器时,模型包含所有必要的项目。但是,ModelState 不包含列表框的键/值。为了解决,我希望这样的事情可以解决问题:

不幸的是,当我尝试添加密钥时,这会引发以下异常: System.NotSupportedException:不允许更改从字典派生的密钥集合。

有任何想法吗?

提前致谢!

0 投票
1 回答
508 浏览

asp.net-mvc - 帮助找出为什么 ASP.NET MVC 渲染引擎会产生意外的 HTML 结果

我有一个带有表单的模式弹出窗口。当通过 ajax(使用 jQuery)提交时,表单被验证并且一个 javascript 回调函数检查模型是否有效。如果是,则重置并隐藏模式弹出窗口,如果不是,则将 html 响应文本转储到模式弹出 div 中,以供用户查看故障。

我在 ASP.NET MVC 中使用 jQuery ajaxSubmit 和仅接受 POST 动词并返回 PartialViewResult 的操作来执行此操作。我在我网站上的几个地方执行此操作,但是在 2 个这样的工作流程关闭 1 页时遇到问题。一个有效,另一个无效,使用相同的代码。

这是问题所在:

在调试过程中,即使在出现验证错误时 ViewData.ModelState.IsValid 为 false,“#ModelValid”也会设置为“True”!我尝试了许多将其显式设置为 false 的方法(例如 ViewData.ModelState.IsValid ? "True" : "False")。即使变量为假并隐藏弹出窗口,它也总是显示为真。到底是怎么回事?

这里有更多代码供参考:

这一切都完全适用于电子邮件功能的相同基本页面的非常相似的工作流程(接受地址的弹出窗口,在 ajax 帖子上验证,如果存在验证错误则显示弹出窗口)。

0 投票
1 回答
1093 浏览

asp.net-mvc - asp.net MVC ModelState 在我的单元测试中为空。为什么?

ModelState 在我的单元测试中总是返回 null。我希望有人能告诉我为什么。

给定以下控制器:

通过此测试,我的 ModelState 测试为 null:

如果我更改控制器以返回一个新的 ViewResult() 我不会得到空值:

但是......如果我这样做,IsValid() 在不应该的时候返回 true:

我认为我在这里做的事情根本上是错误的,我不知道是什么。谁能指出我正确的方向?

0 投票
1 回答
1310 浏览

asp.net-mvc - MVC 2 数据注释问题

现在要疯了。我有一个 MVC 解决方案,我已经从 MVC 1 升级到 2。一切正常......除了验证!

这是一些代码:

在控制器中:

ModelState 始终有效。但是,该模型已正确填充。因此,如果我将用户名和密码都留空,并发布表单,模型状态仍然有效。啊!

额外信息:使用 IoD 的结构图。以前,在升级到 MVC 2 之前使用 MS 数据注释库,所以在我的 global.asax.cs 中有这个: ModelBinders.Binders.DefaultBinder = new Microsoft.Web.Mvc.DataAnnotations.DataAnnotationsModelBinder();

现在已经删除了。

我确定我在做一些非常基本和错误的事情。如果有人能指出这将是了不起的。干杯

0 投票
1 回答
824 浏览

asp.net-mvc - TDD - 在 ASP.NET MVC 中测试业务规则/验证

我正在使用清晰的架构,因此我可以在单元测试和/或 TDD 期间轻松使用模拟等。我有相当复杂的业务规则,想在控制器级别测试它们。我只是想知道其他人如何做到这一点?

对我来说,验证测试三个级别的业务规则:

(1) 属性级别(例如需要属性) (2) 内部属性级别(例如开始日期 < 结束日期) (3) 持久级别(例如名称是唯一的,父级不能是子级的子级)

我的验证框架还将错误分配给属性。我只是想知道其他人是做什么的?您是否为每个业务规则编写测试并检查是否将正确的错误消息分配给正确的属性(即查看 ASP.MVC 模型状态)?

我希望我的问题是有道理的。非常感谢!

最良好的祝愿,

基督教

0 投票
5 回答
2227 浏览

asp.net-mvc-2 - ASP.MVC 2 RTM + Id 属性处的 ModelState 错误

我有这个课程:

而这个动作:

这就是我的看法:

但是 ModelState 总是无效的!正如我所看到的,对于 MVC 验证 0 是无效的,但对我来说是有效的。我该如何解决它,因为我没有在 Id 属性中进行任何类型的验证?

更新: 我不知道如何或为什么,但在我的情况下将 Id 重命名为 PK 可以解决这个问题。

您知道这是我的逻辑/配置中的问题还是错误或预期行为?

0 投票
1 回答
4365 浏览

c# - 如何测试与 ModelState 一起使用的 ActionFilterAttributes?

正如(除其他外)Kazi Manzur Ra​​shid 在这篇博文中所建议的那样,我ActionFilterAttributes在重定向时用于将模型状态从一个请求转移到另一个请求。

但是,我发现自己无法编写单元测试来测试这些属性的行为。例如,这是我想要测试的ImportModelStateAttribute

  1. 设置filterContext包含TempData[myKey]一些假“导出”ModelState的内容(即ModelStateDictionary我自己创建的,并添加一个错误)
  2. 使ModelState包含一个模型错误。
  3. 打电话OnActionExecuting
  4. 验证两个字典是否已合并,ModelState现在包含两个错误。

我已经在第一步不知所措了。

编辑:
是的,我试过ActionFilterAttribute用 Moq 模拟,但我收到错误说明

不可覆盖成员上的无效设置

对于TempDataModelState

0 投票
2 回答
1642 浏览

asp.net - ModelState 始终有效

我有一些看似非常简单的东西不起作用。

我有一个模型

视图模型

一个看法

和一个控制器

无论我输入什么作为标题(null,或 > 10 个字符的字符串),ModelState.IsValid 始终为真。Customer 对象中的 Title 字段有一个值,所以数据正在传递,但没有被验证?

有什么线索吗?

0 投票
2 回答
806 浏览

c# - ASP.NET MVC 中的表单提交中的属性验证错误

我正在构建的 ASP.NET MVC 站点上有一个简单的表单。此表单已提交,然后我验证表单字段不为空、为空或格式不正确。

但是,当我使用ModelState.AddModelError()我的控制器代码指示验证错误时,我在重新渲染视图时收到错误消息。在 Visual Studio 中,我得到以下行突出显示为错误的位置:

错误如下:

用户代码未处理NullReferenceException - 对象引用未设置为对象的实例。

我对该文本框的完整代码如下:

这是我在控制器中进行验证的方式:

注意:这适用于我的所有字段,而不仅仅是我的电子邮件字段,只要它们是无效的