我使用的是asp.net核心和mvc 6和-不显眼的js库。问题是,在提交表单时,js库不会检查我的输入。
每件事都很简单,下面是基本的例子:
作品:
@model MyModel
...
<input asp-for="MyField" placeholder="...">
<span asp-validation-for="MyField"></span>
MyModel只包含我的模型属性。
例如:
public class MyModel
{
public string MyField
public string MyField2
...
}
不起作用:
@model VM
...
<input asp-for="MyModel.MyField" placeholder="...">
<span asp-validation-for="MyModel.MyField"></span>
VM包含MyModel类和其他属性。
例如:
public class VM
{
public MyModel MyModel
public CustomClass OtherClass
...
}
为什么它没有显示验证错误?
发布于 2016-08-06 07:13:52
我在这里找到了一个解决方案:https://github.com/aspnet/jquery-validation-unobtrusive/issues/39#issuecomment-237945087
@rok7 7
在尝试提供一个用于调查的应用程序时,我发现了一个问题:当创建一个新的ASP.Net核心应用程序时,一切正常。但是,如果在VisualStudio中手动修改了bower.json文件(因为jquery没有在“Browse”函数中列出),那么VisualStudio就有必要选择不同的版本,然后VisualStudio恢复jquery-bower.json--验证--与原始文件的以下区别: 函数escapeAttributeValue(值){ //如http://api.jquery.com/category/selectors/返回value.replace(/(!)#$%&‘()*+,./:;<=>?@[\^^{\{}}/g,“$1”);}VisualStudio-还原函数escapeAttributeValue(值){ //如http://api.jquery.com/category/selectors/返回value.replace(/(!)$%&’*+,/:;<=>?@[\]^`{x}~)/g,“\\$1”;}这些神奇插入的‘\’引起了我的问题!
@ryanbrandenburg
这些都是试图解决另一个问题的结果,但是仔细观察,这个问题是由其他原因引起的,我们可以恢复这个变化。这发生在第44号。
解决这种情况的方法很快就会是手动修复上述行,或者将其降级到3.2.5版本。
我相信它会在下一个版本中被修复。
发布于 2016-06-30 19:31:47
以前有人也有过同样的问题,答案也很好。
你需要把字段名写在qoutes里。当您有像username这样的name属性时,请确保将名称放在引号中。
$("#myform").validate({
rules: {
// no quoting necessary
name: "required",
// quoting necessary!
"user[email]": "email",
// dots need quoting, too!
"user.address.street": "required"
}
});
请看这个以获得更多信息Validate input fields with a dot in name
希望这会有所帮助:)
https://stackoverflow.com/questions/38131201
复制相似问题