问题标签 [model-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 回答
679 浏览

jquery - MVC 4 在不使用 JQuery 的情况下验证复选框

我目前正在尝试验证付款表单上的条款和条件复选框,以便在选中条款和条件复选框之前不会提交表单。

我正在创建的特定表单仅供一组使用 IE6 的客户使用(因此我无法使用 JQuery 进行验证)。

我已经使用所需的数据注释修饰了条款和条件 bool 模型值,但未显示所需的错误消息(与使用字符串、十进制或 int 等的其他值不同。

我已经设法使用此代码显示错误:

此代码位于控制器的 HttpPost Index ActionResult 中,然后我在视图中呈现如下:

使用此 cpde 的问题是它仅显示所有其他字段是否正确,是否可以不使用 JQuery 显示此错误消息以及单击提交按钮后立即显示的其他错误消息?

0 投票
2 回答
92 浏览

asp.net-mvc-3 - 使用 DropDownLists 约束和选择模型值

我有一个客户模型

当我将客户创建表单发布到public ActionResult Create(Customer customer)我的操作时CustomerController,它会产生错误ModelState。例如......如果我的代码如下......

在我的 MVC 视图中,它显示客户标题中的错误

例如,如果我if (ModelState.IsValid)从上面的代码中删除该部分,客户实体会保存得很好,我可以在数据库中看到记录。

这里可能是什么问题?

编辑 :

将客户标题传递为IEnumerable<SelectListItem>

代码在视图

0 投票
1 回答
11076 浏览

asp.net-mvc-4 - ASP .NET MVC 4 视图包含两个部分视图,每个视图中都有一个表单

在我的 MVC 4 应用程序中,我有一个索引视图。在这个视图中,我有两个 div 标签,其中呈现了部分视图。有两个按钮在单击时使用 jQuery 在这两个 div 之间切换。Partial Views 是强类型的,每个都有它的模型。

问题:

如何将模型传递给局部视图?如何处理来自部分视图的 POST 请求?在 POST 操作方法中,如果 ModelState 无效,我如何重新渲染知道 ModelStae 的视图?

在这种情况下,部分视图是要走的路吗?使用 MVC 4 是否有更好的方法来实现这一点?

任何帮助表示赞赏。

这是我尝试过的但没有成功的方法:

索引.cshtml

我尝试过HTML.RenderPartial("_partial")但无法指定部分视图所基于的模型。然后我尝试使用Html.RenderAction("TokenBased")并在此操作中返回带有此视图模型实例的部分视图:

凭据控制器.cs

这是部分视图:

TokenPartial.cshtml

这是 POST 操作方法:

如何处理控制器操作方法、索引视图和部分视图之间的交互,就像在“正常”情况下,您有一个索引操作方法渲染一个索引视图,并将其传递一个模型实例。然后在 Index POST 操作方法中,如果验证失败,则通过调用 Index 视图将无效模型传递给它来重新显示表单。

谢谢

0 投票
2 回答
226 浏览

django - 模型表单验证不起作用...我不明白为什么

模型.py

表格.py

当我尝试保存没有输入的表单时,我收到默认的“此字段是必需的”错误,所以我知道我的观点是正确的。问题是我对姓氏字段的验证根本不起作用,我不明白。我在这里做错了什么。为什么它不起作用???这令人沮丧

0 投票
2 回答
592 浏览

asp.net-mvc - 在 getter 和 setter 中抛出异常

我想知道在使用 getter 和 setter 时模型验证的最佳实践是什么。具体来说,我的模型中有可以为空的字段,在某些用例中,访问时不应有空值。在这些情况下,我想从 getter 中抛出一个异常,但这是一种公认​​的做法吗?

如果我在 setter 中收到无效的值,也可能是这种情况。

除了抛出异常之外,我还知道 MVC 属性可用于装饰字段,但并未将它们用于模型验证。在“此值在我的 getter 中不应为空”场景中,是否有我可以使用的适当属性?

此外,如果接受在 getter 和 setter 中抛出异常,是否有推荐的抛出异常,即 ValueNotValidException (如果那是真实的)?

0 投票
1 回答
4588 浏览

asp.net-mvc - 模型无效

我正在创建一个注册表单。我的财产是国民身份证号码。但我希望用户在确认注册后填写。那我就不写在注册表里了。

评论:

这是我的财产:

但这不起作用。我认为原因是属性[IdentityNumber][Required]. 如果我评论他们,

ModelState.IsValidfalse。如果我取消注释它们,它会返回 true。那么我必须在哪里改变一些东西才能允许它呢?我的意思是,我希望用户在注册后写下他/她的身份证号。

在我的数据库中,身份国家号码字段也允许为空。

编辑:这是我的属性代码:

0 投票
1 回答
1834 浏览

c# - 如何在 asp.net mvc 3 中验证多个模型?

我有一个简单的模型,例如:

SampleModel看起来像(它是为了模拟复选框输入而创建的):

在我看来,我实现了:

和控制器端,HomeController

问题:

当我按下提交时,public ActionResult Page( AppointmentModel model )给了我一个模型,他有SampleModelListnull,总是为 null。我想从模型中获得该列表中的已检查输入,但可能由于部分视图而无法正常工作。

在我的情况下如何验证两个模型?或者在我的情况下最好的方法是什么,也许我的方法不好。

请帮忙 :)

更新:

SamplePartialView包含:

和模板:

0 投票
2 回答
1048 浏览

asp.net-mvc - ASP.NET MVC 模型验证错误本地化上下文

首先,我必须说我了解基于数据注释的模型验证在 ASP.NET MVC4 中是如何工作的,并且我已经使用DataAnnotationsModelValidatorProvider. 所以我不需要帮助来设置它。

但是当它归结为 时HtmlHelpers,我正在努力尝试找出错误消息的上下文。并且说context,我的意思是我们正在谈论的错误。哪个属性返回了错误?

我能得到的是Key错误和当前的错误,ErrorMessage但以编程方式,至少我知道,没有什么可以传达我们正在谈论的错误。无论是Required属性还是其他属性,我都找不到如何区分它们的方法。

让我们稍微打开场景。我有自定义HtmlHelpers渲染ContentEditable元素。例如Html.ContentEditableValidationMessageFor(m => m.firstName);. 它将输出如下内容:

现在,我确实有一个 jQuery 插件来处理和持久化contenteditable元素中的更改,并将它们持久化到后端。但是,UI 没有任何内容可以说明我们正在谈论的错误消息。人类可以很容易地看到它是RequiredAttribute,但在编程上没有数据可以将它与某些数据区分开来MinLengthAttribute

在这种情况下,如果我只是将data-valmsg-for="firstName"用作本地化的键,那么对于与同一属性有关的所有错误都会返回相同的错误消息。

四舍五入

什么时候最好的做法ModelState是为 ModelError 发出唯一的 ID?考虑到我正在使用 ASP.NET MVC4 和DataAnnotationsModelValidatorProvider.

我可以想出很多“一起破解”的方法,但我想使用ModelStateMVC 提供的任何东西。如果这一切都归结为编写一个 custom ModelValidatorProvider,那么我完全愿意接受它。只要它是最好和最可持续的方式。我完全赞成现在做的比现在做的多,以后做的少,然后永远破解以保持工作

0 投票
1 回答
1592 浏览

regex - 对于 MVC 4 中的 RegularExpression ValidationAttribute,ModelState.IsValid 始终为 false

在我的课堂上,我有一个像这样的文件附件的属性......

我看不出我的正则表达式有什么问题,但我总是得到 ModelState.IsValid 错误。这似乎非常简单和简单的正则表达式,我错过了什么吗?我需要编写自己的自定义验证吗?

我通过文件类型的常规输入填充 AttachmentTrace:

action 方法只是一个常规动作:

0 投票
1 回答
857 浏览

asp.net-mvc - 使用 DataAnnotationsModelValidator 适配器进行 MVC3 远程验证

我想使用自定义 DataAnnotationsAttribute 验证模型的 DTO 属性上的各种电话号码属性。我不想将 DataAnnotations 复制到 ViewModel 上,以保持代码 DRY,而是使用 DataAnnotationsModelValidatorProvider 注册了一个用于客户端验证的自定义适配器。此适配器提供 ModelClientValidationRemoteRules,通常由 RemoteAttribute 使用。jQuery 不显眼的验证然后调用我的验证操作,它验证各个字段。

但是,这种设置还不够。

  1. 该属性当前使用其 ContainerType 来确定要调用哪个验证操作。然而,DTO 在不同嵌套级别的不同视图模型上使用,因此我们不确切知道在操作上使用什么前缀。根据模型层次结构中 ProfileDto 的位置,操作前缀需要更改

  2. 验证操作使用 Request.Form.Keys 来确定应该验证的属性。我知道为了单元测试等原因,最好远离 Action 中的 Request 对象。

有没有一种好方法可以在回发中包含要验证的字段名称,所以我可以在我的操作中将它作为附加参数而不是使用 Request.Form?

有没有办法让模型绑定器绑定我的属性,因为它们将使用取决于子模型名称的前缀回发?

提前致谢!


属性如下:

和适配器:

这是行动: