问题标签 [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.
asp.net-mvc - Json返回时如何读取模型状态错误?
如何显示 JSON 返回的 ModelState 错误?
我想做这样的事情:
我在视图中的代码必须是什么才能读取 ModelState 错误并显示它们?
我在视图中读取 JSON 值的实际代码如下:
c# - ASP.NET MVC 如何将 ModelState 错误转换为 json
如何获得所有 ModelState 错误消息的列表?我找到了这段代码来获取所有键:(返回带有 ModelState 错误的键列表)
但是我如何将错误消息作为 IList 或 IQueryable 获取?
我可以去:
但那是手动完成的——肯定有办法使用 LINQ 来完成吗?.ErrorMessage 属性在链条的下游,我不知道如何编写 LINQ ......
asp.net - asp.net MVC ModelState.IsValid 返回 false
我在 ASP.NET MVC 应用程序中工作。我有一个视图模型如下:
从 UI Perspective 用户可以输入日期为 mmddyyyy。当用户以这种格式输入 01012001 时,我在控制器中的 ModelState.IsValid 代码段返回 false。当我在 ModelState 中快速查看时,我看到属性“SampleDate”的错误,说“值 01012001 对 SampleDate 无效”。
在我的模型绑定器中,在 OnModelUpdated 事件期间,我尝试将值 01012001 格式化为 01/01/2001 并将其分配回 SampleInterestViewModel.SampleDate 认为 ModelState.IsValid 可能返回 true 而不会出现该错误。但是 ModelState.IsValid 仍然是假的,当我查看 ModelState 字典时,这个特定的属性在它的集合中仍然存在错误。
最后,我尝试格式化 01012001 并将值 01/01/2001 直接更新为 ModelState 字典中的 Property SampleDate。但 ModelState.IsValid 仍然为 false,显示 SampleDate 属性的相同错误。无法弄清楚为什么 ModelState.IsValid 有效,以及它如何以及何时设置为 false。
如果用户在 UI 中输入 01012001,我仍然需要在模型绑定器中将其格式化为 01/01/2001 并确保 ModelState.IsValid 为 true,以便我的控制器代码的其余部分可以按预期工作。在 UI 中,我正在执行 AjaxSubmit 以发布 sampleDate 值。
任何想法或评论。
asp.net-mvc - 验证前需要复制属性
我有一个相当复杂的模型需要验证,问题是这个模型用于两个不同的地方,一个是您注册客户的地方,另一个是您只需添加地址的地方。地址上的某些字段在注册客户表单上根本不可见。因此,当我检查 ModelState.IsValid 时,我当然会得到错误,因为例如。该名称未在帐单地址上输入,但在客户上。这就是为什么我想在验证发生之前,将几个字段复制到模型中,然后进行验证。不过我有点迷茫,我需要帮助。
我的动作看起来像这样:
但它总是返回 false,并且 ModelState.IsValid 继续为 false。
asp.net-mvc - ASP.NET MVC:使用 HtmlHelper.TextBox 和自定义模型绑定器的空引用异常
我写了一个实现的类IModelBinder
(见下文)。此类处理具有 3 个输入的表单,每个输入代表日期值(日、月、年)的一部分。我还写了一个相应的HtmlHelper
扩展方法来打印表单上的三个字段。
当日、月、年输入被赋予可以解析的值,但单独的值验证失败时,一切都很好 - 字段被重新填充并且页面按预期提供给用户。
但是,当提供了无效值并且DateTime
无法解析 a 时,我会返回任意值DateTime
,以便在返回给用户时重新填充字段。
我阅读了人们遇到的类似问题,他们似乎都是由于缺乏电话SetModelValue()
。我没有这样做,但是即使添加了问题也没有解决。
当我尝试为日期的 Year 属性创建一个文本框时,会引发空引用异常,但奇怪的是不是为 Day 或 Month!
谁能解释为什么会这样?
asp.net-mvc - 为什么 MVCContrib 的 ModelStateToTempData 属性不起作用?
我只是试图将 ModelState 从一个动作传递到同一个控制器中的另一个动作,以进行验证。但是,模型状态不会更新。我看到 TempData["____MvcContrib_ValidationFailures____"] 包含来自转发操作的 ModelStateDictionary,但我认为这应该自动转移到我当前的 ModelState 中?我哪里错了?
我正在使用 ASP.NET MVC2 和 MVCContrib 2.0.36.0。我也试过用这个属性装饰Controller,但结果是一样的。
代码:
asp.net-mvc - MVC 2 ModelState - 显示所有错误
我的 asp.net 表单引发了与不正确模型相关的错误,但在页面上它没有显示哪个模型字段引发了错误。我想 Debug.WriteLine ModelState 中的所有错误,但我不确定如何去做。有任何想法吗?
.net - .Net MVC2如何在使用自定义ValidationAttribute时向ModelState添加错误
我有以下 ValidationAttribute 类
它在构造函数中有两个日期属性名称和一个运算符。
在验证方法中,返回语句 LeftDate Operator RightDate 的结果。
因为这是一个 AttriuteTargets.Class 属性,所以我知道框架不可能知道导致验证失败的属性。但我知道是左日期属性失败了,因此我想将模型状态中错误的 ID 设置为此属性。这样做的原因是我希望在表单中标记失败的字段。
问题:如何修改ModelState中添加到错误集合中的错误项,使其id对应于表单中的特定字段?
asp.net-mvc - ModelState 报告为对 ASP.NET MVC 2 中模型的私有属性无效
我正在使用 ASP.NET MVC 2.0,我正在尝试利用我的控制器中的模型绑定以及模型状态验证。但是,我遇到了一个问题,并想在这里与人们分享,看看您的想法。
好的,我的模型类库中有我干净的用户 poco ......
我所采用的设计只允许在构建对象后编辑某些属性。例如,UserName 只能在构造对象时设置,对我来说这有 OO 意义,但这是我的问题的关键,所以我想在这里强调它。
然后我有一个“伙伴类”,它为我的用户类定义了验证元数据......
}
然后在我的 web 层中,我想让我的用户能够编辑这个对象。所以我的配置文件控制器中有以下两种操作方法。
这有一个强类型的视图来配合它......
好的,这就是所有的代码!
所以这就是问题所在,在初始获取请求后视图渲染得很好。但是当用户发回表单时,比如在编辑了他们的显示名称之后,ModelState 无效。这是因为 UserName 属性上有一个私有设置器。然而这是设计使然,出于安全和语义的考虑,我不希望他们更改用户名,因此 setter 是私有的。但是,由于我已将Required 属性添加到属性中,因此它未设置而失败!
问题是模型绑定是否应该将此报告为验证错误?!由于该属性是私有的,因此我设计为不设置它,因此根据设计我不希望模型绑定器设置它,但我不想要验证错误。我认为它应该只对它可以设置的属性产生验证错误。
好的,到目前为止我已经提出了可能的解决方案..
公开财产。
如果我这样做,我会敞开心扉,允许为现有用户更改用户名。我必须在某处添加额外的逻辑才能捕捉到这一点,这不是很好。我还必须在操作方法上添加一个绑定排除,以阻止任何顽皮的人试图通过帖子设置它。
删除错误
我相信我可以从 ModelState 字典中删除错误,这在这种情况下会很好,但我认为这会引入一些代码异味,因为我必须为所有具有私有设置器的对象添加它。我可能会忘记!
针对界面强烈键入我的视图
我读过一些人将他们的视图绑定到他们模型的接口,这是模型视图接口到业务模型对象的王者。我喜欢这个想法,但我失去了自动绑定,需要在我的 web 层中复制我的模型对象及其构造函数,不确定吗?!一些信息在这里http://www.codethinked.com/post/2010/04/12/Easy-And-Safe-Model-Binding-In-ASPNET-MVC.aspx。
使用模型视图
这对我来说似乎并不干燥?!如果我没有适合的现有模型对象(例如我使用注册模型视图),我很乐意使用这些。
自定义模型绑定器
我的首选,但我不确定我知道我在做什么!!如果我能让活页夹只绑定到它可以设置的属性,那我会笑的!
人们怎么想?对上述选项的评论,任何其他解决方案,我的架构是否与我的架构格格不入?!
谢谢 :)
c# - 如果 ASP.NET MVC 表单中的字段值已失效,如何保留它?
我有一个表单在发送电子邮件之前要经过一些验证。
我尝试使用它进行验证,其中 ValidateInput 方法根据输入设置 ModelState:
如果某些内容无效,这将清除所有输入的字段。我想将所有输入的数据保留在该字段中。我怎样才能做到这一点?