【问题标题】:MVC Foolproof validation 'Sys is not defined'MVC 万无一失的验证“未定义系统”
【发布时间】:2014-06-25 19:50:13
【问题描述】:

我使用包管理器控制台安装了这两个包:foolproof & MvcExtentions.Foolproof。我在我的包配置中包含了万无一失的脚本文件(见下文)。

请注意,我还没有实现任何万无一失的代码,我只是安装了 pacakges 并包含了脚本文件,然后运行了应用程序。

我收到以下客户端错误:

MvcFoolproofValidation.js: Uncaught ReferenceError: Sys is not defined

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
     "~/Scripts/jquery-{version}.js",
     "~/Scripts/jquery-ui-{version}.js",
     "~/Scripts/jquery.unobtrusive*",
     "~/Scripts/jquery.validate*",
     "~/Scripts/MvcFoolproofJQueryValidation.js",
     "~/Scripts/mvcfoolproof.unobtrusive.js",
     "~/Scripts/MvcFoolproofValidation.js"));

呈现为:(如果有任何后果)

<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/jquery-ui-1.10.3.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="/Scripts/MvcFoolproofJQueryValidation.js"></script>
<script src="/Scripts/mvcfoolproof.unobtrusive.js"></script>
<script src="/Scripts/MvcFoolproofValidation.js"></script>

【问题讨论】:

    标签: jquery asp.net-mvc-4 foolproof-validation


    【解决方案1】:

    问题是因为顺序不正确。我有同样的问题,但我解决了这个顺序:

    捆绑包:

    bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
        "~/Scripts/jquery.validate*"));
    
    bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
        "~/Scripts/bootstrap.js",
        "~/Scripts/respond.js",
        "~/Scripts/jquery.validate.min.js",
        "~/Scripts/jquery.validate.unobtrusive.min.js",
        "~/Scripts/blur.js"));
    
    bundles.Add(new ScriptBundle("~/bundles/mvcfoolproof").Include(
        "~/Scripts/MicrosoftAjax.js",
        "~/Scripts/MicrosoftMvcAjax.js",
        "~/Scripts/MicrosoftMvcValidation.js",
        "~/Scripts/MvcFoolproofJQueryValidation.min.js",
        "~/Scripts/MvcFoolproofValidation.min.js",
        "~/Scripts/mvcfoolproof.unobtrusive.min.js"));
    

    观点:

    @Scripts.Render("~/bundles/bootstrap")
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/bundles/mvcfoolproof")
    

    渲染:

     <script src="/Scripts/jquery-ui-1.11.1.js"></script>
     <script src="/Scripts/jquery.validate.js"></script>
     <script src="/Scripts/jquery.validate.unobtrusive.js"></script>
     <script src="/Scripts/MicrosoftAjax.js"></script>
     <script src="/Scripts/MicrosoftMvcAjax.js"></script>
     <script src="/Scripts/MicrosoftMvcValidation.js"></script>
     <script src="/Scripts/MvcFoolproofJQueryValidation.min.js"></script>
     <script src="/Scripts/MvcFoolproofValidation.min.js"></script>
     <script src="/Scripts/mvcfoolproof.unobtrusive.min.js"></script>
    

    而且...问题已经解决了。

    查看文档以查看此订单here

    【讨论】:

    • 很高兴帮助朋友... Reggrads
    • “Sys”从何而来?我正在尝试使用 RequireJS 进行设置,但由于我猜测的顺序,我遇到了一些问题。
    • @muttley91 当您在页面上有一个 ScriptManager 时(如本例),ASP.NET AJAX 将呈现一些脚本标签以加载各种 ASP.NET AJAX 脚本,以及一些内联脚本来获取一切都初始化并运行。如果您查看浏览器呈现的页面上的源代码,您应该会看到如下内容:
    • 仅供说明 MicrosoftAjax.jsMicrosoftMvcAjax.jsMicrosoftMvcValidation.js 已被弃用这里是源 stackoverflow.com/questions/8782697
    【解决方案2】:

    您没有加载所有 3 个脚本,是吗?你只应该加载:

    mvcfoolproof.unobtrusive.js 与(MvcFoolproofJQueryValidation.js 或 MvcFoolproofValidation.js)

    如果您正在加载所有 3 个脚本,是否可以停止加载 MvcFoolproofValidation.js 脚本。

    如果你只是使用 mvcfoolproof.unobtrusive.js 和 MvcFoolproofValidation.js,你可以换成 mvcfoolproof.unobtrusive.js 和 MvcFoolproofJQueryValidation.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多