ASP.NET Core:与其他<script>标记

时间:2017-09-02 16:42:29

标签: asp.net-core asp.net-core-mvc model-validation

使用 VS2017 ,我使用个人的默认 ASP.NET核心Web应用程序模板创建了一个ASP.NET MVC Core 1.1.1应用程序用户帐户模式。我们知道 VS2017 默认情况下会在项目中创建并配置所有必需的 css javascripts 文件。当我使用javascript和 jquery.validate.js 时, validation 在客户端和服务器端接受正常工作,如下所示:

&#xA ;&#xA;

观察

&#xA;&#xA;
    &#xA;
  1. 当我输入正确的值(类型为float)时在输入框中,表单成功提交,并将值插入SQL数据库。但故意如果我输入一个字符串,比如abc,客户端错误不会发生,但是在post操作上,正如预期的那样, ModelStat.IsValid 返回false,因此数据不会插入到db中。
  2. &#xA;
  3. 在页面的源视图(如下所示)上(或使用F12),我可以看到 jquery.validate.js 被正确加载
  4. &#xA;
  5. 我尝试在&lt; script&gt; ...&lt; \ script&gt; 之前加载 jquery.validate.js 然后移动它到&lt; script&gt; ...&lt; \ script&gt; 之后, jquery.validate.js 成功加载,但客户端验证仍然无效。
  6. &#xA;
&#xA;&#xA;

查看

&#xA;&#xA;
  @model MyProj.Models .MainViewModel&#XA; ...&#xA;&lt; div class =“form-group”&gt;&#xA; &lt; label asp-for =“Price”&gt;&lt; / label&gt;&#xA; &lt; div class =“col-md-10”&gt;&#xA; &lt; input asp-for =“Price”class =“form-control”&gt;&lt; / input&gt;&#xA; &lt; span asp-validation-for =“Price”class =“text-danger”&gt;&lt; / span&gt;&#xA; &LT; / DIV&GT;&#XA; &LT; / DIV&GT;&#XA; &LT; DIV&GT;&#XA; &lt; button type =“submit”name =“submit”...&gt; GO&lt; / button&gt;&#xA; &lt; / div&gt;&#xA;&#xA; @section scripts&#xA; {&#xA; @ {await Html.RenderPartialAsync(“_ ValidationScriptsPartial”); }&#XA; &LT;脚本&GT;&#XA; $(document).ready(function(){&#xA; ...&#xA; ...&#xA;});&#xA; &lt; / script&gt;&#xA;}&#xA;  
&#xA;&#xA;

页面来源视图

&#xA ;&#xA;
  ...&#xA;&lt; div class =“col-sm-2”&gt;&#xA; &lt; small class =“input-group-addon”&gt; $&lt; / small&gt;&#xA; &lt; input class =“form-control text-right”type =“text”data-val =“true”data-val-number =“字段价格必须是数字。” id =“Price”name =“Price”value =“”&gt;&#xA; &lt; span class =“text-danger field-validation-valid”data-valmsg-for =“Price”data-valmsg-replace =“true”&gt;&lt; / span&gt;&#xA;&lt; / div&gt;& #xA; ...&#XA;&LT; / DIV&GT;&#XA; ...&#XA; &lt; script src =“/ lib / jquery / dist / jquery.js”&gt;&lt; / script&gt;&#xA; &lt; script src =“/ lib / bootstrap / dist / js / bootstrap.js”&gt;&lt; / script&gt;&#xA; &lt; script src =“/ js / site.js?v = EWaMeWsJBYWmL2g_KkgXZQ5nPe-a3Ichp0LEgzXczKo”&gt;&lt; / script&gt;&#xA;&#xA;&#xA; &lt; script src =“/ lib / jquery-validation / dist / jquery.validate.js”&gt;&lt; / script&gt;&#xA; &lt; script src =“/ lib / jquery-validation-unobtrusive / jquery.validate.unobtrusive.js”&gt;&lt; / script&gt;&#xA;&#xA;&#xA; &LT;脚本&GT;&#XA; $(document).ready(function(){&#xA; ...&#xA; ...&#xA;});&#xA; &LT; /脚本&GT;&#XA;  
&#XA;

1 个答案:

答案 0 :(得分:0)

为时已晚,但希望对您有帮助

也像这样使用unobtrusive

@section scripts{
    <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
    <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
}