Html.ValidationMessageFor根本不显示

时间:2014-10-31 11:56:23

标签: asp.net-mvc unobtrusive-validation

我有以下表格:

<form action="~/buy-online" method="get" class="buy-online-form clearfix" autocomplete="off" id="buy-online-search">
    <div class="infield-holder clearfix">
        @Html.LabelFor(m => m.CustomerPostcode, new { @class = "infield" })
        @Html.TextBoxFor(m => m.CustomerPostcode, new { @class = "textbox" })
        <input type="submit" value="Buy Online" id="find-retailer-button" class="button" />
    </div>
</form>

@Html.ValidationMessageFor(m => m.CustomerPostcode)

哪种方法正常,并且在没有jQuery的情况下提交时会显示错误消息,但是当我添加jQuery验证脚本时(v 1.11.1):

<script src="/scripts/jquery.validate.js"></script>
<script src="/scripts/jquery.validate.unobtrusive.js"></script>

它会停止表单提交但不显示错误消息

我的财产标记如下:

[DisplayName("Enter your full postcode")]
[Required(ErrorMessage = "Please enter your full postcode")]
public string CustomerPostcode { get; set; }

html呈现如下:

<input class="textbox" data-val="true" data-val-required="Please enter your full postcode" id="CustomerPostcode" name="CustomerPostcode" type="text" value="" />

<span class="field-validation-valid" data-valmsg-for="CustomerPostcode" data-valmsg-replace="true"></span>

如果我在点击提交时检查输入,则会将类input-validation-error添加到文本框中,但不会更新验证消息。

我已经检查过这个问题的所有帖子都说要包含脚本,这样我就不知道邮件没有显示的原因了。

我甚至尝试添加jquery.unobtrusive-ajax.js脚本,但这似乎也没有做任何事情。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:3)

您需要在@Html.ValidationMessageFor(m => m.CustomerPostcode)的表单标记中加入jquery.validate.unobtrusive才能正常工作。

相关问题