在我的项目中,我向我的观点提供了一个视图模型,该模型具有Company
类型的属性Company
。公司类有多个具有不同验证要求的字段,它们都有数据注释。
当我提交表单时,控制器会将模型状态标记为无效,并将错误消息传递回我的视图,并显示在摘要下。但是,它们不会显示在各自的字段下。
以下是我的代码示例摘录:
<div asp-validation-summary="ValidationSummary.All" class="text-danger"></div>
<div class="form-group row">
<div class="col-md-2">
<label>Name</label>
</div>
<div class="col-md-10">
<input asp-for="Company.Name" class="form-control" placeholder="Company Name" />
<span asp-validation-for="Company.Name" class="text-danger" />
</div>
</div>
@section Scripts {
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
}
错误永远不会在表单提交之前填充,并且它们不会在各自的字段下显示。相反,我只在摘要下看到它们。
我确实在Chrome中弹出了一个javascript错误,其中包含以下内容:jquery.validate.unobtrusive.min.js:5 Uncaught TypeError: Cannot set property 'unobtrusive' of undefined
但我在这里很难过。
答案 0 :(得分:1)
对于ASP.NET 5中的客户端验证 - MVC6添加:
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
然后在Views/Shared/_ValidationScriptsPartial.cshtml
<environment names="Development">
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</environment>
<environment names="Staging,Production">
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.min.js"
asp-fallback-src="~/lib/jquery-validation/dist/jquery.validate.min.js"
asp-fallback-test="window.jQuery && window.jQuery.validator">
</script>
<script src="https://ajax.aspnetcdn.com/ajax/mvc/5.2.3/jquery.validate.unobtrusive.min.js"
asp-fallback-src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive">
</script>
</environment>
在Visual Studio中创建标准的ASP.NET 5 Web应用程序,并查看其实现方式。