【问题标题】:Email validation not working in MVC电子邮件验证在 MVC 中不起作用
【发布时间】:2013-11-11 12:10:21
【问题描述】:

在我的 MVC 应用程序中,电子邮件验证在本地运行良好,但是当我发布和部署到服务器时它就无法运行。我比较了本地和部署文件的html源,没有区别。我的 Razor 视图标记是

 <li>
        <p><strong>Email: </strong>@Model.CurrentEmailAddress <span class="deliverychange" onclick="showHidden('emailchange');">(Change email)</span></p>
        <div id="emailchange" class="fullborder" style="display: none;">
            <div class="orderrow newemailaddress">
                @Html.LabelFor(m => m.UpdatedEmailAddress)
                @Html.TextBoxFor(m => m.UpdatedEmailAddress, new { @onkeypress = "showEmailChangeConfirmation();" })
                @Html.ValidationMessageFor(m => m.UpdatedEmailAddress)
            </div>

            <div id="updatedemailkeypress" style="display: none;">
                <div class="orderrow checkboxrow emailchangeconfirm">
                    @Html.LabelFor(m => m.UpdateEmailAddress)
                    @Html.EnumRadioButtonFor(m => m.UpdateEmailAddress, false)
                </div>
            </div>

            <div class="clear">&nbsp;</div>
        </div>
    </li>

我的模型是

    [DataType(DataType.EmailAddress)]
    [RegularExpression(@"^([\w.-]+)@([\w-]+)((.(\w){2,3})+)$", ErrorMessage = "Email is not valid")]
    [Display(Name = "Enter new email address: ")]
    public string UpdatedEmailAddress { get; set; }


    [Display(Name = "We will use ****")]
    public YesNo UpdateEmailAddress { get; set; }

【问题讨论】:

  • 检查您的机器和服务器上的 ASP.NET MVC 和所有相关程序集的版本是否相同。数据注释属性在不同版本之间的行为可能不同。
  • 有什么特别的程序集吗? - 因为我在删除现有文件后在服务器上发布了完整的应用程序
  • System.Web、System.Web.Mvc、System.Web.Razor、System.Web.Webpages。可能还有更多。

标签: asp.net-mvc asp.net-mvc-4 email-validation


【解决方案1】:
【解决方案2】:

请重新检查表单标签是否存在。

表单验证实际上是通过验证表单有效方法来工作的。 因此,表单必须存在。

希望这会有所帮助。

【讨论】:

    【解决方案3】:

    在花了很多时间之后,我发现发布向导没有将 jquery.validate-vsdoc.js 复制到脚本文件夹。我手动将其复制到服务器并开始工作。

    【讨论】:

      【解决方案4】:

      尝试使用dataannotationsextensions库,可以从nuget下载。

      然后像这样将 Email 属性添加到您的模型中

      using DataAnnotationsExtensions;
              [Required]
              [DataType(DataType.EmailAddress)]
              [Email]
              public string UpdatedEmailAddress { get; set; }
      

      【讨论】:

        猜你喜欢
        • 2020-03-30
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 1970-01-01
        • 2017-05-27
        • 2012-08-19
        • 2019-01-01
        • 2015-01-20
        相关资源
        最近更新 更多