Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core ASP.NET Core:jquery.validate.js与其他文件一起使用时不起作用<;脚本>;标签_Asp.net Core_Asp.net Core Mvc_Model Validation - Fatal编程技术网

Asp.net core ASP.NET Core:jquery.validate.js与其他文件一起使用时不起作用<;脚本>;标签

Asp.net core ASP.NET Core:jquery.validate.js与其他文件一起使用时不起作用<;脚本>;标签,asp.net-core,asp.net-core-mvc,model-validation,Asp.net Core,Asp.net Core Mvc,Model Validation,使用VS2017,我创建了一个ASP.NET MVC Core 1.1.1应用程序,使用默认的ASP.NET Core Web应用程序模板和个人用户帐户模式。正如我们所知,默认情况下,VS2017在项目内创建和配置所有必要的css和javascripts文件。当我与jquery.validate.js一起使用javascript时,验证在客户端和服务器端都可以正常工作,如下所示: 观察结果 当我在输入框中输入正确的值(类型为float)时,表单将成功提交,并将该值插入SQL db。但是,如果我有

使用
VS2017
,我创建了一个ASP.NET MVC Core 1.1.1应用程序,使用默认的
ASP.NET Core Web应用程序
模板和
个人用户帐户
模式。正如我们所知,默认情况下,
VS2017
在项目内创建和配置所有必要的
css
javascripts
文件。当我与
jquery.validate.js一起使用javascript时,
验证
在客户端和服务器端都可以正常工作,如下所示:

观察结果

  • 当我在输入框中输入正确的值(类型为float)时,表单将成功提交,并将该值插入SQL db。但是,如果我有意地输入一个字符串,例如abc,则不会发生客户端错误,但在post操作时,正如预期的那样,
    ModelStat.IsValid
    返回false,因此数据不会插入到数据库中
  • 在页面的源代码视图(如下所示)上(或使用F12),我可以看到
    jquery.validate.js
    已正确加载
  • 我尝试在
    ..
    之前加载
    jquery.validate.js
    ,然后将其移动到
    ..
    之后,但是
    jquery.validate.js
    加载成功,但客户端验证仍然不起作用
  • 查看

    @model MyProj.Models.MainViewModel
     ...
    <div class="form-group">
     <label asp-for="Price"></label>
     <div class="col-md-10">
        <input asp-for="Price" class="form-control"></input>
        <span asp-validation-for="Price" class="text-danger"></span>
     </div>
     </div>
     <div>
       <button type="submit" name="submit"...>GO</button>
     </div>
    
    @section scripts
    {  
       @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
       <script>
         $(document).ready(function () {
         ...
         ...
         });
       </script>
    }
    
    ...
    <div class="col-sm-2">
        <small class="input-group-addon">$</small>
        <input class="form-control text-right" type="text" data-val="true" data-val-number="The field Price must be a number." id="Price" name="Price" value="">
        <span class="text-danger field-validation-valid" data-valmsg-for="Price" data-valmsg-replace="true"></span>
    </div>
    ...
    </div>
    ...
           <script src="/lib/jquery/dist/jquery.js"></script>
           <script src="/lib/bootstrap/dist/js/bootstrap.js"></script>
           <script src="/js/site.js?v=EWaMeWsJBYWmL2g_KkgXZQ5nPe-a3Ichp0LEgzXczKo"></script>
    
    
        <script src="/lib/jquery-validation/dist/jquery.validate.js"></script>
        <script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    
    
      <script>
        $(document).ready(function () {
        ...
        ...
       });
     </script>
    
    @model MyProj.Models.MainViewModel
    ...
    去
    @节脚本
    {  
    @{wait Html.RenderPartialAsync(“_validationScript”);}
    $(文档).ready(函数(){
    ...
    ...
    });
    }
    
    页面源代码视图

    @model MyProj.Models.MainViewModel
     ...
    <div class="form-group">
     <label asp-for="Price"></label>
     <div class="col-md-10">
        <input asp-for="Price" class="form-control"></input>
        <span asp-validation-for="Price" class="text-danger"></span>
     </div>
     </div>
     <div>
       <button type="submit" name="submit"...>GO</button>
     </div>
    
    @section scripts
    {  
       @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
       <script>
         $(document).ready(function () {
         ...
         ...
         });
       </script>
    }
    
    ...
    <div class="col-sm-2">
        <small class="input-group-addon">$</small>
        <input class="form-control text-right" type="text" data-val="true" data-val-number="The field Price must be a number." id="Price" name="Price" value="">
        <span class="text-danger field-validation-valid" data-valmsg-for="Price" data-valmsg-replace="true"></span>
    </div>
    ...
    </div>
    ...
           <script src="/lib/jquery/dist/jquery.js"></script>
           <script src="/lib/bootstrap/dist/js/bootstrap.js"></script>
           <script src="/js/site.js?v=EWaMeWsJBYWmL2g_KkgXZQ5nPe-a3Ichp0LEgzXczKo"></script>
    
    
        <script src="/lib/jquery-validation/dist/jquery.validate.js"></script>
        <script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    
    
      <script>
        $(document).ready(function () {
        ...
        ...
       });
     </script>
    
    。。。
    $
    ...
    ...
    $(文档).ready(函数(){
    ...
    ...
    });
    
    为时已晚,但希望这对您有所帮助

    像这样使用
    不引人注目的

    @section scripts{
        <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    }
    
    @节脚本{
    }
    
    @节不应像中那样呈现html@JoeAudette这是帖子的
    页面源代码视图
    部分的一个输入错误-我已经纠正了。谢谢你指出这一点。你在页面上看到脚本错误了吗?在视图模型上是否有用于验证的注释?你应该在问题中显示你的视图模型以及至少部分视图。你是说,如果省略最后一个脚本元素,它会按预期工作吗?如果是这样的话,我可能需要更多地了解这个脚本的功能,因为它似乎破坏了它。是的,代码看起来不错,没有什么会让我觉得是错的。局部视图是可以的,除非它是由ajax加载的,这可能会使它在不引人注目的情况下错过连接。在页面加载时,不引人注目的脚本应该看到数据属性并连接验证,但如果在页面加载后由ajax加载,则可以解释问题。如果在初始页面加载期间呈现局部视图,则该视图应该可以工作