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

asp.net-mvc - 当要验证的属性位于模式引导程序中时,远程验证不起作用

我正在使用 ASP.NET MVC3。
当用户创建帐户时,我需要选择的昵称是唯一的,所以我使用这样的RemoteDataAnnotation:

我在强类型视图中使用它,通过@Html.TextBoxFor(m => m.Nickname)完美地工作


但是,我创建了另一个具有完全相同属性的模型。

我通过以下方式在强类型视图上使用了这个 MyOtherModel.Nickname:
@Html.TextBoxFor(m => m.MyOtherModel.Nickname) 但是,仅在这种情况下,传递给我的CheckNickame()方法的数据始终是null.

只有两个区别:

  • 在第二种情况下,我要远程验证的属性包含在另一个模型中(这是一个问题吗?我不这么认为......)
  • 在第二种情况下,该属性显示模态引导程序中(这是一个问题吗?)

有关信息,这就是我的CheckNickname()样子:

正如我之前写的那样,仅在第二种情况下,参数nickname总是null在第一种情况下按预期工作。

有谁知道为什么?
任何帮助表示赞赏。


更新:
我创建了这个方法:

现在的调用是:
http://mysite/Validation/CheckNickname2?MyOtherModel.Nickname=Alex
但如果我在上面放一个断点CheckNickname2nickname参数仍然是null

但是,对有效验证方法的调用是:
http://mysite/Validation/CheckNickname?Nickname=Alex
并且这个有效...


解决方案:
好的,通过更改[Bind(Prefix = "MyOtherModel")]Stephen Muecke[Bind(Prefix = "MyOtherModel.Nickname")]的建议来解决

0 投票
1 回答
163 浏览

jquery - 试图强制远程验证

使用远程验证来比较模型的开始时间和结束时间。

一切正常,但发现了一个小错误。

如果开始时间错误地设置为上午 11 点,则输入结束时间为上午 10 点,结束时间是标志错误,它在开始时间之前。因此,如果我将开始时间更改为上午 9 点,虽然它是正确的,但结束时间仍然显示错误,因为在更改开始时间时尚未重新评估它。可以简单地单击结束时间并关闭标签,但是最终用户会抱怨。

因此尝试根据其他一些帖子再次强制验证,但无法使其正常工作。模型

视图开始:

开始和结束时间剃刀代码:

Jquery 我以为我在强迫它重新检查

0 投票
1 回答
266 浏览

asp.net-mvc - mvc中的远程验证不起作用

我正在尝试在我的应用程序中使用远程验证来检查已经存在的记录。

这里:

和我的控制器动作:

在这里,我得到了两者的 NULL 值。如果我将数据类型分别更改为 bool 和 long 。我收到内部服务器 500 错误

0 投票
0 回答
1639 浏览

c# - MVC 远程验证附加字段命名

我对邮政编码字段进行了远程验证,并且国家 ID 作为附加字段传递给它。以下是代码:

模型:

名称是动作参数和模型属性中的名称可以不同吗?

我为什么要这个?
从属性名称可以不同的不同模型调用相同的远程验证方法。

0 投票
1 回答
1256 浏览

asp.net-mvc-4 - MVC Remote validation not working

I have a few remote validations to make for client side validation. Two of them are almost identical, but one works and the other doesn't, the break point never gets hit.

Working One:

View:

Model:

Method:

Source Code:

Not Working One

View:

Model:

Method:

Source Code:

I have made sure that the scripts are loaded in the correct order. The additional fields are typed correctly. There are no errors coming up in the debug or looking at the source code. I have looked around and the solutions for similar problems are already implemented.

0 投票
1 回答
379 浏览

asp.net-mvc - MVC 远程属性问题

我在 MVC 中设置了一个远程验证器,以确保在我的页面上创建或编辑公司时该公司不存在。这是模型:

这是DoesCompanyExist功能:

除了一个问题,一切都很好。在我的编辑页面上,如果用户进入公司的编辑页面,然后只保存它而不更改任何内容,我的远程验证器将触发验证错误。原因是该公司实际上已经存在于数据库中,但是,我的远程验证器没有意识到它正在修改相同的记录。

有什么解决办法吗?理想情况下,如果我能以某种方式将 CompanyId 传递给我的远程验证器,那就太好了。这样我就可以从我的SELECT声明中排除该 ID。

0 投票
2 回答
1290 浏览

javascript - 找不到元素 Firefox 控制台:MVC

我正在开发一个带有远程验证的 MVC 应用程序。我在浏览器控制台中收到 No element found 错误。我收到了很多 Jquery not found 错误,我可以通过呈现所需的脚本来消除这些错误。现在我在浏览器控制台中只有一个错误。

我的视图脚本:放置在页脚

在布局中:在正文之前(基于我阅读的建议)

我怎样才能得到这个工作?我使用了远程验证,我想我的代码中缺少用于验证的 Jquery。但是我已经添加了我遵循的远程验证教程中提到的所有脚本文件(虽然我已经添加了更多)。

远程验证

编辑

编辑:

我已经从我的程序中删除了 Json 验证。仍然不能解决问题。根据 Torm 的评论,我进行了 http 流量分析,发现没有丢失或损坏的请求和响应。我仍然有创建按钮不起作用。不发布任何值。

0 投票
0 回答
375 浏览

asp.net-mvc - 远程验证 - 复杂数组模型 - 未传递的行值

远程验证仅针对第一个元素进行。对于其他元素,参数中包含 null 值,因此不会发生验证。为什么它为其余行传递空值?仅传递第 0 行值。我究竟做错了什么?还是有其他方法可以进行验证?

我的模型:

视图使用 for 循环呈现:

0 投票
0 回答
98 浏览

javascript - jquery .valid() = true 在远程验证之前

我正在MVC5使用客户端和服务器验证的组合。对于这个特定问题,我正在使用远程验证。

剃刀视图:

该模型:

控制器:

远程验证 .complete() 函数:

用于对更改事件进行验证的 jquery:

queueForm 方法:

在更改下拉列表中的值后跟踪代码时,会触发更改事件并调用 queueForm 函数。在valid()远程验证发生之前,调用的计算结果为 true。

直到我跨过“if ($(e.target).valid())”行之后,它才评估为 true 并进入 if 块。然后它跳转到我的控制器中的远程ValidateStudentStatus功能。

我在这里做错了吗?我是否误解了远程验证的工作原理?

任何见解或帮助将不胜感激!

0 投票
0 回答
511 浏览

c# - MVC 5 中的通用远程验证

我正在使用 EF 6 数据库优先方法开发 MVC 5 应用程序。我的许多模型中的字段都需要进行一定的验证。我正在使用远程验证来验证它们。由于它被用于很多模型中,所以我正在尝试一种通用方法。

为此,我创建了一个名为 IEntity 的接口,其中包括模型中使用的所有属性。然后我为我的验证方法做了以下事情:

以下是我如何调用模型中的属性验证:

但问题是验证不起作用,当我在浏览器控制台中检查时,我发现验证实际上正在进入该方法,但返回了 500(内部服务器错误)。

我知道问题出在用方法名称编写的T上,因为当我删除泛型并硬编码我的模型名称时,它工作正常。

我只想使用 MVC 的远程验证,我很乐意让这个通用方法正常工作,否则它将是很多位置的复制/粘贴。