问题标签 [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.

0 投票
1 回答
275 浏览

asp.net-mvc-2 - ViewModel 不匹配模型导致模型状态无效

我有一个这样的模型类:

当我通过 GET 将模型发送到浏览器时,我通过匿名类型将数据作为两个字段的组合(例如 FirstName.ToString() + LastName.ToString())发送。

当我对服务器进行 POST 时,问题就来了。由于返回的 JSON 与模型不同,因此通过 ModelState.IsValid() 返回无效,因为我的操作方法需要一个List<Person> persons.

我真的不想创建一个 ModelViewModel 重复代码,因为一个字段导致模型无效。有没有解决的办法?

0 投票
2 回答
1802 浏览

c# - ASP.net 验证:为什么我的 DateTime 字段也会根据需要进行标记?

我正在我的网络应用程序中实施验证......问题似乎是过度验证?!

控制器代码如下所示:

这是 CaseInfo 实现:

还有我的 CaseInfoMap:

但是当我运行它并提交没有值的表单时,我收到以下验证错误:

但我没有指定这些应该是必需的?!为什么决策和原因字段不抛出类似的验证错误?

任何人都可以对此有所了解吗?

我正在使用 .NET 4 和 MVC 2。

0 投票
2 回答
1073 浏览

c# - ASP.NET MVC - 为什么在我以编程方式设置 ModelMetadata.IsRequired 后 ModelState.IsValid 返回 true?

我有一个扩展方法,我从我的 EditorTemplate(对于一个字符串)中调用它,它在控件上设置标签和所需的元数据。(我无法注释我的模型,所以这就是我这样做的原因)。

有没有人知道为什么 ModelState.IsValid 不会在我设置为Required = true的字段上找到?

0 投票
6 回答
36863 浏览

asp.net-mvc - 如何在验证摘要中显示 MVC 3 客户端验证结果

我有一个注册表单,我在上面使用客户端验证(在我的视图模型上指定的必需、StringLength 等)。该表单目前几乎是脚手架创建它的方式:

唯一的区别是我将 ValidationMessageFor 移到了 ValidationSummary 的右上方。

我想做的是在验证摘要中显示客户端验证错误。目前它们仅显示在表单顶部,但不使用验证摘要。如何使用验证摘要显示客户端验证错误?这甚至可能吗?

更新

Darin 我在一个新项目中使用了你的代码,当客户端验证启动时,这对我来说是这样的:

客户端验证 http://tinypic.com/images/404.gif

我希望这会显示在验证摘要中,并应用验证摘要样式。我还提交了如下表格:

提交后

谢谢,

b3n

0 投票
5 回答
1077 浏览

asp.net-mvc - 执行验证的推荐位置是什么:ViewModel、Model 或 Controller?

我有一个注册页面,想对重复的用户名和电子邮件地址执行一些验证(除了我的 ViewModel 上的 StringLength 和 Required 注释)。目前,当回发注册表单时,我在我的控制器中执行此验证。我不确定这是否是正确的地方。

我无法想象 ViewModel 是正确的位置,因为它需要 ViewModel 引用我的 UserRepository。在模型类中进行这种验证有意义吗?

如果是这样,我如何在模型上实现它,以便在将信息发送到我的存储库之前检查信息是否有效?

更新

我的控制器操作代码:

更新 2

域模型是否应该关心诸如重复的用户名或电子邮件地址之类的约束,或者这是控制器层应该担心的事情?

更新 3

似乎将验证逻辑放在控制器中最有意义,因为它可以在远程验证和提交时的模型验证中重用。像检查重复这样的事情通常应该在控制器中完成,还是在域模型中进行此类检查是否有意义?

谢谢,

0 投票
4 回答
7492 浏览

c# - html.textboxfor() 应该正好是 7 个字符

我需要一个应该正好是 7 个字符的文本框,为此我已经写了

这种情况下我只需要 7 个字符,但是如果我想少于 7 个字符,它会占用吗?有没有像maxlength只需要 7 个字符的属性。

问候,迈克尔·维拉亚杜

0 投票
2 回答
824 浏览

c# - asp.net MVC2中数据验证的部分类

我正在创建我的第一个 ASP.NET MVC2 应用程序。我正在尝试创建一个用于数据验证的部分类,如 nerdDinner 应用程序中所示,但 MetaDataType 有一条红线,显示消息:“找不到类型或命名空间'MetadataType'(您是否缺少 using 指令或程序集参考?)”

是否有我缺少的“使用”命名空间?这是我的代码:

0 投票
1 回答
467 浏览

asp.net-mvc-2 - 有没有办法让用户在提交 html 内容的同时仍然启用模型验证?

我需要允许用户在其文本输入中提交包含 html 的表单值。这是一个面向内部的应用程序,因此这样做相当安全。我已经成功使用

相关方法的属性,但这会禁止相关方法/视图模型的所有模型验证,但我只想允许 html 在一个的文本框,并且不一定希望为同一方法/视图模型中的每个其他模型验证编写自己的保护子句,而我可能更愿意继续对视图模型中的所有其他属性使用数据注释。太糟糕了,我不能将 [ValidateInput(false)] 仅应用于我的视图模型的单个属性。我假设我需要覆盖 mvc 的默认模型验证,但我找不到任何关于如何这样做的文档。每次搜索都会产生仅描述如何编写我自己的自定义验证属性的结果,这对于我要解决的问题是不正确的。谢谢!

0 投票
1 回答
1064 浏览

c# - 客户端验证不适用于自定义属性

嗨,我有一个自定义属性

这适用于服务器端,但不适用于客户端,但这

适用于两者。我读了这个,但它没有帮助。

我非常感谢您的帮助。

谢谢

0 投票
4 回答
172436 浏览

asp.net-mvc-2 - ModelState.AddModelError - 如何添加不属于属性的错误?

我正在检查我的数据库Create(FooViewModel fvm){...}以查看fvm.prop1和是否fvm.prop2已经存在于该组合中;如果是这样,我想在模型状态中添加一个错误,然后返回整个视图。我试过了:

...但是我没有在 中显示错误Html.ValidationSummary,这是我认为它们会出现的地方。我怀疑“模型”不是正确的键,但我无法在谷歌中找到任何东西。