MVC.net 2 - изменить HTML, выданный ValidationMessageFor - это можно отключить с помощью шаблонов? - PullRequest
2 голосов
/ 12 мая 2010

MVC.net 2 по умолчанию выводит сообщения проверки, подобные этому:

<span id="UserName_validationMessage" class="field-validation-valid">A Validation message</span>

Я бы хотел сделать это так:

<label id="UserName_validationMessage" class="field-validation-valid">A Validation message</label>

Есть ли способ сделать это как шаблоны отображения и редактирования? Или есть другой способ сделать это глобально?

Ответы [ 2 ]

3 голосов
/ 12 мая 2010

Код, который генерирует этот html, находится внутри ValidateExtensions.cs в System.Web.Mvc. Вы можете обновить код для вывода метки вместо диапазона, а затем перекомпилировать это. Код выглядит следующим образом:

        TagBuilder builder = new TagBuilder("span");
        builder.MergeAttributes(htmlAttributes);
        builder.MergeAttribute("class", HtmlHelper.ValidationMessageCssClassName);
        builder.SetInnerText(String.IsNullOrEmpty(validationMessage) ? GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState) : validationMessage);

В противном случае вы можете переопределить ValidationExtensions.ValidationSummary (этот HtmlHelper htmlHelper, строковое сообщение, IDictionary htmlAttributes) и сделать это таким образом ...

0 голосов
/ 29 июня 2011

Я думаю, это именно то, что вы ищете:

http://blog.syntaxc4.net/?p=711

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