MVC6验证 - 属性不正常?

时间:2016-05-16 16:42:21

标签: javascript asp.net-mvc asp.net-core-mvc

在我的项目中,我向我的观点提供了一个视图模型,该模型具有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

但我在这里很难过。

1 个答案:

答案 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应用程序,并查看其实现方式。