2014-10-31 2 views
2

У меня есть следующий вид:Html.ValidationMessageFor не отображается на всех

<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, но это тоже ничего не показалось. Любая помощь будет оценена, спасибо.

+3

Поместите '@ Html.ValidationMessageFor (..)' внутри тегов формы –

+0

Ах так просто! Это было вне проблем стилизации, но я могу это изменить. Если вы хотите сказать это как ответ, я соглашусь. Благодаря! –

+0

Кто-нибудь хочет объяснить нижний план? Это хорошо сформулированный вопрос о проблеме, показывающей достаточно кода для репликации проблемы и следуйте всем правилам о том, что SO для –

ответ

3

Вам необходимо указать @Html.ValidationMessageFor(m => m.CustomerPostcode) в тегах формы для jquery.validate.unobtrusive для работы.

Смежные вопросы