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

asp.net-mvc-3 - 强制重新验证 mvc3 不显眼的远程验证

这是一个经典的登录流程。用户可以在“新用户”或“现有用户”之间进行选择。如果用户是新用户,则登录框中的名称应针对服务器进行验证,以查看用户名是否唯一,如果是现有用户,则将跳过此检查,因为我们希望用户名已经被使用(当然)。

我在视图模型上添加了一个 [Remote] 属性,并将新/退出用户的单选按钮添加为“附加字段”。这样,如果它是现有用户,远程验证将只返回 true,如果不是,则检查数据库,以查看是否使用了用户名。

这很好用,除非用户在输入用户名后决定更改单选按钮(新的/现有的)(并且远程验证已经运行)。由于远程验证仅在用户名更改时自动运行(即具有 [Remote] 属性的属性),因此仅更改单选按钮将不会再次运行。

所以我的问题是,我怎样才能强制远程验证再次运行?我通过在用户名输入字段上触发更改/焦点/模糊事件来尝试通常的黑客攻击,但未触发调用。我考虑在单选按钮上添加一个类似的 [Remote],但这会使两个看起来相同的错误消息变得复杂,放置在相同的绝对位置。

有没有办法触发重新验证?

0 投票
2 回答
994 浏览

asp.net-mvc - 来自引用程序集的实体的 MVC3 远程验证?

如果我在单独的程序集中定义了一个实体类(例如来自 Entity Framework),是否可以向属性添加远程验证?

如果该类是在我的 MVC 项目中定义的,我只需向该属性添加一个 Remote 属性,但是当该类在单独的程序集中定义时,我不能这样做。我确实在我的 EF 项目中定义了其他数据注释,但是在那里添加远程注释没有任何意义。

我可能可以手动将 jquery 验证规则添加到我的视图中,但我想知道是否有办法让 MVC 框架为我做这件事。

我在网上找到的每个示例都假定您使用的是在 MVC 项目中定义的实体,可以轻松添加远程验证。在我的视图中使用我的 EF 实体作为我的模型类是错误的吗?制作具有所有相同属性的新实体,以及与我的 EF 类相同的数据注释,并且必须在两者之间来回转换,这似乎是一种浪费。

0 投票
2 回答
1990 浏览

asp.net-mvc - 当参数名称需要不同时,如何重用远程验证方法?

我有两个类用作两个不同视图的模型。您可以看到第二个类包含第一个类的实例。第一个包含远程验证属性。

当这些验证在浏览器中触发时,会根据视图使用的类发出两个不同的请求。可以看到查询字符串参数名称不同:

这是我的操作方法的当前版本,它不适用于第二个 URL:

当使用第二个 URL 时,name 参数将为空。我读过我应该能够向该参数添加一个 Bind 属性并添加一个前缀,但这也不起作用。我什至尝试将前缀设置为EmailRecipient.以防万一它需要点。为了以防万一,我还尝试在名称中使用大写 N。不去。添加它也会破坏其他 URL!

可能的解决方案

我可以让该方法获取一个 EmailRecipientViewModel 的实例并为其创建一个 IModelBinder,我可以在其中查找任一命名约定并将其分配给该实例。这似乎比应该做的工作更多。

我可以使用重载@Html.EditorFor()并告诉它为 htmlFieldName 使用“名称”,也可以使用@Html.ValidationMessage( "Name" )而不是ValidationMessageFor. 唯一的缺点是潜在的命名冲突,但这并不是什么大不了的事。我只需要为正在使用的这个类的所有实例使用一个唯一的名称。更新:实际上,如果我这样做,因为我更改了名称,所以在我发布表格时会破坏事情。那不好。

...

我刚刚发现我可以让该方法不带参数,并手动访问查询字符串。这是一个非常简单的解决方案,但我没有得到 nice 参数。

这很容易,我可能只会使用它。但是,既然我已经输入了这个问题,我会问,有没有更优雅的解决方案?

0 投票
3 回答
2780 浏览

asp.net-mvc - 远程验证似乎有问题

想象一下这种情况:

设置

在默认的 MVC3 项目中,在AccountModels.cs

RegisterModel更改UserName为:

控制器中的UserNameExists方法Validation如下:

现在在注册视图中,使用GlobalAccount模型而不是RegisterModel

用户名输入框将如下所示:

这将在 HTML 中产生类似的结果

调试

如果您使用 FireBug 检查发生了什么......远程验证将属性名称而不是属性id发送到验证方法(那个UserNameExists),如下所示:

Register.UserName代替Register_UserName

所以我无法获取这个值......永远:(

这真的是一个错误还是有人已经发现而我无法通过谷歌搜索得到它?

这是实际问题的简单图像:

在此处输入图像描述

0 投票
3 回答
2124 浏览

c# - asp.net mvc 3中的远程验证问题

我有一个人物模型

这是我的 UserNameExists 方法

当我启用 Javascript 时,它工作得很好,但是当我禁用 javascript 时,这个规则不会被强制执行......

为什么是这样?

请帮忙。

编辑预期行为:

根据msdn,即使没有 Javacript,它也应该遵守这条规则

  1. 或者,在您的浏览器中禁用客户端脚本,再次运行该页面,然后输入违反验证约束的数据。

当您离开包含无效数据的字段时,您不会看到验证错误,因为脚本被禁用。因为 ASP.NET MVC 使用不显眼的 JavaScript,所以您看不到客户端脚本错误。但是,在您提交表单时会执行服务器端验证。(最好使用禁用了脚本的浏览器测试您的 Web 应用程序。)

0 投票
1 回答
1400 浏览

asp.net-mvc-3 - MVC 3对象的远程验证不起作用

我意识到这个问题已经被问过很多次了。但是,没有一个解决方案对我有用。

问题:

我有一个对象:

还有一个模型:

和我的行动:

当验证开始时,因为它是一个复杂的对象,它会发送一个如下所示的 URL:

显然这意味着我的操作不会选择日期,因为参数名称与查询字符串名称不匹配。

我进行了广泛的搜索,看到了很多建议——所有这些我都尝试过,但都没有奏效。以下是我尝试过的:

使用绑定属性

日期只是返回为空

使用模型或对象作为参数类型

MyDate总是以 MinValue 结尾,但参数(SomeModel 或 SomeObject)不为空

我不太确定我做错了什么。谁能指出我正确的方向?跑步前有没有我必须念诵的咒语,或者外面必须是晴天?对于一个常见的场景,这似乎比预期的要多得多。

0 投票
2 回答
2558 浏览

validation - 显示远程验证成功响应的自定义消息

我在注册我的 asp.net mvc 3 应用程序(C#)时使用远程验证来检查用户名的可用性。

我将 MVC 远程属性验证用作:

我需要在两个条件下显示消息:

  1. 显示错误消息“用户名不可用” - 失败条件
  2. 显示成功消息“用户名可用” - 成功条件

我能够显示失败条件的消息,而不会出现任何问题,例如:

但是对于成功条件,我需要发送 true 作为响应(而不是自定义消息):

如何显示远程验证成功条件的自定义消息?

0 投票
1 回答
1826 浏览

asp.net-mvc-3 - MVC3 远程属性,如何实现?

我在解决方案下有一个解决方案,其中有几个项目称为 DomainModel,我在其中编写我的模型和其他东西,主要是基础设施。

现在我有另一个名为 WebUI 的项目,我在其中做我的 UI(视图、控制器等...)

我想在必须在 WebUI 特定视图中实现的 DomainModel 项目中使用 Remote 属性。

当我在 DomainModel 中使用它时,它给了我一个错误,它无法识别控制器并且它是正确的它无法识别它,因为如果我添加 WebUI 的引用,Vs 开始对我发誓,因为它将是一个循环引用.

如何实施?

这是我为 RemoteValidation 服务的代码控制器

//DomainModel项目中的真实实体

这是我在 WebUI.Models 中使用远程属性扩展它后的实体

这是我的看法

0 投票
3 回答
1034 浏览

asp.net-mvc-3 - 如何在asp.net mvc3中使用数据注释进行远程验证时显示ajax加载器图像

在我的 asp.net mvc3 应用程序中,如果用户已经存在,我正在使用数据注释进行远程验证。它运行良好。我想知道是否有什么原因我可以在远程验证(ajax 请求)发生时在表单中的输入字段旁边显示 ajax 加载器图像。

请帮我

谢谢

0 投票
2 回答
1705 浏览

jquery - MVC3 非鲁棒远程验证的加载指示器

我正在执行 MVC3 不可靠的远程验证以检查用户名的可用性。

它工作正常,但加载验证消息需要相当长的时间!有没有办法在过渡期间显示微调器/用户名可用的检查消息?