电子邮件验证无法在MVC中使用

时间:2013-10-31 13:06:28

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

在我的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; }

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

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

表单验证实际上通过验证表单有效方法来实现。 因此,表格必须存在。

希望这有帮助。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

只需将电子邮件属性添加到您的模型中就像这样

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