2016-05-16 109 views
0

在我的项目中,我提供了一个视图模型,该模型的属性为Company,其类型为Company。公司类具有不同验证要求的多个字段,并且它们都有数据注释。MVC6验证 - 属性工作不正常?

当我提交表单时,控制器会将模型状态标记为无效,并将错误消息传回给我的视图,并将它们显示在摘要下。但是,它们不会显示在各自的字段下。

这里是我的代码示例片段:

<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> 
} 

的错误表单提交之前从未填充,他们不各自的领域下显示。相反,我只能在摘要下看到它们。

我有一个JavaScript错误中铬弹出说明沿着线的东西:jquery.validate.unobtrusive.min.js:5 Uncaught TypeError: Cannot set property 'unobtrusive' of undefined

但我相当这里难倒。

+0

嗨。你可以发布你的脚本呈现部分和捆绑配置? –

+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创建一个标准的5 ASP.NET Web应用程序和看看它是如何实施的。