问题标签 [asp.net-mvc-2-validation]
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-2 - ViewModel 不匹配模型导致模型状态无效
我有一个这样的模型类:
当我通过 GET 将模型发送到浏览器时,我通过匿名类型将数据作为两个字段的组合(例如 FirstName.ToString() + LastName.ToString())发送。
当我对服务器进行 POST 时,问题就来了。由于返回的 JSON 与模型不同,因此通过 ModelState.IsValid() 返回无效,因为我的操作方法需要一个List<Person> persons
.
我真的不想创建一个 ModelViewModel 重复代码,因为一个字段导致模型无效。有没有解决的办法?
c# - ASP.net 验证:为什么我的 DateTime 字段也会根据需要进行标记?
我正在我的网络应用程序中实施验证......问题似乎是过度验证?!
控制器代码如下所示:
这是 CaseInfo 实现:
还有我的 CaseInfoMap:
但是当我运行它并提交没有值的表单时,我收到以下验证错误:
但我没有指定这些应该是必需的?!为什么决策和原因字段不抛出类似的验证错误?
任何人都可以对此有所了解吗?
我正在使用 .NET 4 和 MVC 2。
c# - ASP.NET MVC - 为什么在我以编程方式设置 ModelMetadata.IsRequired 后 ModelState.IsValid 返回 true?
我有一个扩展方法,我从我的 EditorTemplate(对于一个字符串)中调用它,它在控件上设置标签和所需的元数据。(我无法注释我的模型,所以这就是我这样做的原因)。
有没有人知道为什么 ModelState.IsValid 不会在我设置为Required = true的字段上找到?
asp.net-mvc - 如何在验证摘要中显示 MVC 3 客户端验证结果
我有一个注册表单,我在上面使用客户端验证(在我的视图模型上指定的必需、StringLength 等)。该表单目前几乎是脚手架创建它的方式:
唯一的区别是我将 ValidationMessageFor 移到了 ValidationSummary 的右上方。
我想做的是在验证摘要中显示客户端验证错误。目前它们仅显示在表单顶部,但不使用验证摘要。如何使用验证摘要显示客户端验证错误?这甚至可能吗?
更新
Darin 我在一个新项目中使用了你的代码,当客户端验证启动时,这对我来说是这样的:
客户端验证 http://tinypic.com/images/404.gif
我希望这会显示在验证摘要中,并应用验证摘要样式。我还提交了如下表格:
谢谢,
b3n
asp.net-mvc - 执行验证的推荐位置是什么:ViewModel、Model 或 Controller?
我有一个注册页面,想对重复的用户名和电子邮件地址执行一些验证(除了我的 ViewModel 上的 StringLength 和 Required 注释)。目前,当回发注册表单时,我在我的控制器中执行此验证。我不确定这是否是正确的地方。
我无法想象 ViewModel 是正确的位置,因为它需要 ViewModel 引用我的 UserRepository。在模型类中进行这种验证有意义吗?
如果是这样,我如何在模型上实现它,以便在将信息发送到我的存储库之前检查信息是否有效?
更新
我的控制器操作代码:
更新 2
域模型是否应该关心诸如重复的用户名或电子邮件地址之类的约束,或者这是控制器层应该担心的事情?
更新 3
似乎将验证逻辑放在控制器中最有意义,因为它可以在远程验证和提交时的模型验证中重用。像检查重复这样的事情通常应该在控制器中完成,还是在域模型中进行此类检查是否有意义?
谢谢,
c# - html.textboxfor() 应该正好是 7 个字符
我需要一个应该正好是 7 个字符的文本框,为此我已经写了
这种情况下我只需要 7 个字符,但是如果我想少于 7 个字符,它会占用吗?有没有像maxlength
只需要 7 个字符的属性。
问候,迈克尔·维拉亚杜
c# - asp.net MVC2中数据验证的部分类
我正在创建我的第一个 ASP.NET MVC2 应用程序。我正在尝试创建一个用于数据验证的部分类,如 nerdDinner 应用程序中所示,但 MetaDataType 有一条红线,显示消息:“找不到类型或命名空间'MetadataType'(您是否缺少 using 指令或程序集参考?)”
是否有我缺少的“使用”命名空间?这是我的代码:
asp.net-mvc-2 - 有没有办法让用户在提交 html 内容的同时仍然启用模型验证?
我需要允许用户在其文本输入中提交包含 html 的表单值。这是一个面向内部的应用程序,因此这样做相当安全。我已经成功使用
相关方法的属性,但这会禁止相关方法/视图模型的所有模型验证,但我只想允许 html 在一个的文本框,并且不一定希望为同一方法/视图模型中的每个其他模型验证编写自己的保护子句,而我可能更愿意继续对视图模型中的所有其他属性使用数据注释。太糟糕了,我不能将 [ValidateInput(false)] 仅应用于我的视图模型的单个属性。我假设我需要覆盖 mvc 的默认模型验证,但我找不到任何关于如何这样做的文档。每次搜索都会产生仅描述如何编写我自己的自定义验证属性的结果,这对于我要解决的问题是不正确的。谢谢!
asp.net-mvc-2 - ModelState.AddModelError - 如何添加不属于属性的错误?
我正在检查我的数据库Create(FooViewModel fvm){...}
以查看fvm.prop1
和是否fvm.prop2
已经存在于该组合中;如果是这样,我想在模型状态中添加一个错误,然后返回整个视图。我试过了:
...但是我没有在 中显示错误Html.ValidationSummary
,这是我认为它们会出现的地方。我怀疑“模型”不是正确的键,但我无法在谷歌中找到任何东西。