问题标签 [asp.net-mvc-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 回答
1118 浏览

asp.net-mvc-3 - 验证作为 MVC3 ViewModel 属性的列表的 TextBox 输入

我意识到我参加聚会有点晚了,但是……我正在从事我的第一个 MVC 项目,并且已经能够处理大部分需要完成的事情。大多数项目只是读取数据并将数据泵入图表。但是,我有一个 View 的模型看起来像这样(父类属性在这里并不重要):

ChildClass 看起来像这样:

现在,检索数据不是问题。我可以遍历列表,并创建一个表格进行编辑,如下所示:

在过去几天浏览该站点后,我突然意识到我可以在服务器端以 POST 方法验证输入(表单底部有一个“保存”按钮),但是( a)如何将验证错误消息返回给用户,(b)执行验证客户端?

我还必须提到,此视图使用列表中的值来创建图表的一部分,然后再呈现为表格。

0 投票
2 回答
4785 浏览

asp.net-mvc - 来自不同控制器操作和 ModelState 的 HTTP Post 请求

我对 ASP.NET MVC 3 应用程序有一个奇怪的需求,它阻碍了我当前的进度。情况如下:

我有一个小的产品搜索引擎,我在多个页面上呈现这个搜索引擎。product此 SE 向控制器的操作发出 HTTP POST 请求search。到这里还好。

假设我在home控制器的index操作(/home/index)上。我进行搜索并检查是否ModelState.IsValid. 结果,它是无效的。所以,我应该用输入的模型返回这个(这样用户就不会丢失值)和模型状态错误。但是当我这样做时,我最终得到了预期的不同 URL(/product/search)。

如果我进行重定向,我会丢失ModelState并且无法显示错误消息。

到目前为止,我有不同的解决方案,它们看起来都很脏。任何的想法?

编辑

这是一个小项目,它证明了这一点:

这是ProductController

这是SearchModel

这是 *_SearchPartial*:

最后这是呈现 *_SearchPartial*的Home控制器操作视图:Index

在这里,当我提交表单并且模型状态失败时,我应该如何进行Product控制器Search操作?

0 投票
2 回答
1638 浏览

asp.net-mvc - ModelState.IsValid = true for not valid model

I have view for adding very simple objects:

I made controller like this:

The model is being generated from database schema (as a part of edmx). Field name nullable property is set to false.

In some way, for blank input "name" the ModelState.IsValid property is true and it's trying to save it (on SaveChanges() it crashes with validation error). Why?

0 投票
2 回答
627 浏览

asp.net-mvc - Asp.Net MVC:从 ActionFilterAttribute OnActionExecuting 填充模型属性

我正在为网站中丢失的密码实施验证码控制,如此处所述

但是我觉得很不舒服`

filterContext.ActionParameters["captchaValid"] = recaptchaResponse.IsValid;

因为:

  • 我有一个强类型视图,带有验证器
  • 那天我会更改属性名称而不记住这个字符串字段,它不会起作用。

所以我搜索了如何在 中编辑我的模型的属性ActionFilterAttributeOnActionExecuting因为我的控制器操作将需要这些数据。我找到了这个,但对我不起作用,因为我需要在执行操作之前设置模型。

所以我想我可以添加一个“发布变量”,它将被模型绑定器读取,但似乎它filterContext.HttpContext.Request.Form处于只读模式。

那么你认为我如何将结果放入我的模型中?

例如:MyModel.IsCaptchaValid = recaptchaResponse.IsValid;

如果我无法避免指定属性字段的事件,它比现在更好:

0 投票
1 回答
3775 浏览

asp.net-mvc-3 - 服务器端错误的 ValidationSummary 不起作用

客户端验证和 ValidationSummary 对我的项目(MVC4 + Razor + Unobtrusive JS)运行良好,但服务器端错误未显示在我的视图中,如果有任何客户端错误,它不会从视图中删除(它确实来自模型状态)。我在 Chrome14 和 IE9 上都试过了

服务器端错误被添加到模型中,ModelState.AddModelError(string.Empty, ModelState.AllErrors());并在视图中显示为@Html.ValidationSummary(false)

编辑

简单的表单提交工作正常,它显示了从服务器返回的多条错误消息并更新了错误消息,但是,基于 ajax 的表单提交不起作用,根本不显示基于 ajax 的表单提交返回的错误消息。

这是如何发出请求的示例演示

ActionToAddRecord 是表示主模型包含的模型的局部视图

错误返回为

编辑

我在 VS2010 的模板化 MVC 应用程序中看到了类似的功能,即基于对话框的登录表单。错误消息以 Json 形式返回,然后 JS 用于显示它们,IMO,似乎 MS 使基于 Ajax 的请求变得非常简单和简洁(Ajax.BeginForm)但缺少错误处理部分。现在我不愿意为此使用 JS,可能有更好的方法来自动处理这种类型的错误处理。

0 投票
1 回答
1614 浏览

asp.net - MVC 验证摘要不起作用

我在 MVC 中有一个奇怪的问题。我正在使用 ASP.Net MVC,我创建了一个部分视图,它将用户的评论详细信息发布到数据库。我已经使用"jquery.validate.min.js""jquery.validate.unobtrusive.min.js"出于验证目的,在单击提交按钮时,我的文本框得到轮廓并用红色填充,表示我没有提供强制值,但我的验证摘要显示为空白,我使用了此语句 <%: Html.ValidationSummary(true)%>,提供了错误值validationsummary 也不起作用,此页面也绑定到 IPagedList,因为我还显示了一个具有分页的网格,但我想这不是问题。我只是无法弄清楚为什么我的验证摘要没有显示任何消息,即使我的文本框被红色勾勒出来

0 投票
2 回答
2112 浏览

asp.net-mvc - 仅在电子邮件无效时显示错误消息

我在 ASP MVC3 中工作。我有一个输入客户联系信息的模型。该信息是必需的。当 viewstat 无效时,文本框必须有一个红色边框(这有效)en no errormessage。但是当 emailinput 无效时,错误必须在视图上可见。因此,只有电子邮件注释的错误消息必须可见,而不是必需的注释。我不知道该怎么做。

模型:

看法:

0 投票
0 回答
143 浏览

c# - 为 Nullable 字段创建自动生成的验证器

我有一个必须可本地化的 MVC 3 应用程序。对于我的整数 MVC 会自动添加数字验证,但是我已将该字段标记为可为空。

这是在我的 ViewModel 中:

这是在我的模型中:

我已经读过 MVC 仅为不可空字段添加了此验证,但在我的情况下,它也为可空字段添加此验证。

可能是什么原因?

实际上,在我的应用程序中,所有验证消息都必须是多语言的,因此我必须创建自定义验证器以从 db 获取这些消息。但是 MVC 的自动生成的验证器优先于我的验证器,而且它只有英文。

0 投票
1 回答
947 浏览

asp.net - 如何对 Asp.net MVC 2 中的集合项应用验证

我有一个强类型视图,它保存控件(输入框)来表示一个集合项。例如,以添加员工详细信息的视图为例,其中有一组可变的输入字段用于输入部门名称。这些输入字段将在客户端动态添加。

这是这两个实体的类结构:

部门名称的输入是动态生成的,名称的设置方式是发布后实现模型绑定

现在我的问题是我应该如何对此应用验证?Microsoft Validation 不会在 mvcClientValidationMetadata 内推送验证,我认为这是因为框架在视图加载时没有看到任何模型绑定发生。

有任何想法吗 ??

0 投票
1 回答
4800 浏览

json - 在 MVC 3 项目中显示 JsonResult 返回的 ModelState 错误?

我有一个使用 JsonResult 操作而不是 ActionResult的创建页面。在 ActionResult 操作中,错误显示在违规字段旁边的视图中。现在 JsonResult 只返回一个显示在警告框中的字符串。

我可以在视图上显示 ModelState 错误吗?

控制器

jquery/javascript 代码在视图中