【问题标题】:MVC4 validation not working after IIS deployment, but in Visual studio server its working fineMVC4 验证在 IIS 部署后不起作用,但在 Visual Studio 服务器中它工作正常
【发布时间】:2015-07-09 22:56:02
【问题描述】:

我正在开发一个 MVC4 应用程序,在 Visual Studio 服务器上一切正常,例如“客户端”验证消息。

但是当我发布这个项目并在 IIS 中进行部署时,它根本不工作,与解决方案混淆。是否需要添加任何代码或 IIS 配置问题?这是 UI 块代码,我使用的是 Jquery-1.9.1,请帮帮我。我可能缺少 IIS 配置(如果有的话)吗?

             @Html.LabelFor(model => model.Zip)
         <span style="float:right;">@Html.EditorFor(model => model.Zip)</span><br>
         <span style="float:right;">@Html.ValidationMessageFor(model => model.Zip)</span><br>

在模型中:

[DisplayName("Zip")]
        [StringLength(5, ErrorMessage = "Length can't be more than 5.")]
        [RegularExpression("([0-9]{5})", ErrorMessage = "Enter valid 5 digit numeric values")]
        public string Zip { get; set; }

【问题讨论】:

  • 可能是JS库文件加载不正确。您是否检查过路径是否正确,并且控制台中没有错误?
  • @Rory 我在浏览器控制台中得到了这个.. TypeError: n(...).live is not a function ...iveAjaxClick",f="unobtrusiveValidation";n("a[data -ajax=true]").live("click",func...为此,我通过删除不推荐使用的 .live() 代码对 unobstructive.ajax.js 文件进行了更改..但仍然没有运气
  • live()很久 之前已从 jQuery 源代码中删除。听起来您需要更新您在本地副本中使用的 jQuery 版本,并改用on() 的委托版本。
  • by removing deprecated .live() code 您是否删除了该代码或将其替换为 on?还可以尝试将所有出现的live 替换为on。然后尝试清除浏览器缓存。
  • 是的,正如我用谷歌搜索的那样。我根据需要从 jquery.unobtrusive-ajax.js 中删除了那些已弃用的函数,并将我本地的相同副本发布到 IIS。

标签: java jquery asp.net-mvc model-view-controller iis-7


【解决方案1】:

当您使用有缺陷的 jquery.validate.unobstrusive.js 库时会发生这种情况,该库在 MVC5 项目中默认引用并在使用正确的 jquery.unobstrusive-ajax.js 库更新您的开发代码之前部署它。

只需删除 IIS 上 Scripts 文件夹中的 jquery.validate.unobstrusive.jsjquery.validate.unobstrusive.min.js 即可解决此问题。

【讨论】:

    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2020-07-16
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多