【问题标题】:Html.ValidationMessageFor not displaying at allHtml.ValidationMessageFor 根本不显示
【发布时间】:2014-10-31 11:56:23
【问题描述】:

我有以下表格:

<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 脚本,但这似乎也没有任何作用。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • @Html.ValidationMessageFor(..) 放在表单标签内
  • 啊,太简单了!它在样式问题之外,但我可以改变它。如果您想将其作为答案,我会接受。谢谢!
  • 有人愿意解释一下否决票吗?这是一个格式良好的问题,该问题显示了足够的代码来复制问题并遵循关于 SO 用途的所有规则
  • 同意并取消。

标签: asp.net-mvc unobtrusive-validation


【解决方案1】:

您需要在表单标签中包含@Html.ValidationMessageFor(m =&gt; m.CustomerPostcode)jquery.validate.unobtrusive 才能工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多