【问题标题】:MVC Validations not working when deployed on IIS在 IIS 上部署时,MVC 验证不起作用
【发布时间】:2015-08-03 06:03:28
【问题描述】:

我已经在 IIS 上部署了一个 MVC 项目,但没有一个验证在那里工作,而验证在 localhost 上工作正常。它显示.live() 不是一种方法的错误,然后我用谷歌搜索并将.live() 替换为@987654323 @ 所以现在没有显示错误,但验证仍然根本不起作用。请指导我解决这个问题。以下是我的示例查看代码

            <li>
                @Html.LabelFor(m => m.AccountName)
                @*@Html.DropDownListFor(x => x.AccountId, (ViewBag.AccountsList) as IEnumerable<SelectListItem>, new { @class = "", @style = "width:312px; height:31px;" })*@
                @Html.DropDownListFor(m => m.AccountId, (ViewBag.AccountsList) as IEnumerable<SelectListItem>, new { @Id = "AccountName", @class = "chosen-select", @style = "width:312px; height:31px; float: right;" })
                @Html.ValidationMessageFor(m => m.AccountId)



            </li>
            <li>
                @Html.LabelFor(m => m.ContactName)
                @Html.TextBoxFor(m => m.ContactName)
                @Html.ValidationMessageFor(m => m.ContactName)

            </li>

下面是Model的代码

        [Required(ErrorMessage = "*")]
        [Display(Name = "Account Name")]
        public string AccountName { get; set; }
        [Required(ErrorMessage = "*")]
        [Display(Name = "Contact Name")]
        public string ContactName { get; set; }

【问题讨论】:

  • 显示您声称无效的代码示例
  • @StephenMuecke 请检查我更新的问题
  • 您的模型拥有AccountName 的属性,但您的视图是AccountId
  • @StephenMuecke ,但其他人应该可以工作
  • 那么您使用的是过时的脚本。将它们(jquery.js、jquery.validate.js 和 jquery.validate.unobtrusive.js)更新到最新版本。

标签: validation asp.net-mvc-4 jquery-ui iis


【解决方案1】:

您已声明您已将 .live() 更改为 .on(),这表明您正在使用过时的脚本,因为 .live() 在 jquery v1.7 中已被贬值并在 v1.9 中被删除。您需要将与非侵入式客户端验证相关的所有脚本 - jquery{version}.js、jquery.validate.js 和 jquery.validate.unobtrusive.js 更新到当前版本。

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2013-10-09
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多