@ Html.ValidationMessageFor () настраиваемая проверкаMessage всегда отображается - PullRequest
24 голосов
/ 10 июня 2011

Я пытаюсь использовать другое сообщение для @Html.ValidationMessageFor() в ASP.NET MVC3. Это работает нормально, но кажется, что сообщение всегда отображается, например, если я сделаю это:

@Html.ValidationMessageFor(model => model.TimesheetEntry.Product)

тогда ошибка отображается только когда я отправляю форму и она недействительна. Однако, если я сделаю это:

@Html.ValidationMessageFor(model => model.TimesheetEntry.Product, "custom error")

тогда это сообщение отображается, как только я первоначально загружаю страницу. Я, вероятно, делаю что-то глупое здесь, и любая помощь будет оценена.

Ответы [ 4 ]

39 голосов
/ 10 июня 2011

Вы пробовали CSS из этого вопроса ?

.field-validation-valid
{
    display: none;
}
.validation-summary-valid
{
    display: none;
}
8 голосов
/ 03 марта 2012

возможно, у вас есть параметр модели в вашем httpGet ActionResult методе

2 голосов
/ 10 апреля 2018

У меня тоже была эта проблема, и я сделал "взлом" сверху, добавив два css-класса с display none. Затем я обнаружил, что если я переместил свое сообщение об ошибке в свою модель и использовал пустую строку в качестве параметра в ValidationMessage, то все было решено, и я смог удалить два класса.

В модели

 [Display(Name = "Caption"), Required(ErrorMessage = "Caption is required")]

In cshtml

@Html.EditorFor(m => m.caption, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(m => m.caption, "", new { @class = "text-danger" })
1 голос
/ 10 июня 2011

Я недостаточно играл с проверкой в ​​MVC 3, поэтому я просто пытаюсь решить эту проблему.

Я бы посмотрел на это: http://msdn.microsoft.com/en-us/library/dd470929.aspx

Дастандартная документация MSDN, но метод ValidationMessageFor () гласит:

Возвращает HTML-разметку для сообщения об ошибке проверки для каждого поля данных, представленного указанным выражением, используя указанное сообщение.

Для меня это звучит так, как будто оно всегда должно возвращать сообщение, даже если вы не предоставляете пользовательское сообщение в виде строки.Похоже, есть другие методы, которые могут лучше соответствовать вашим потребностям на указанном URI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...