В настоящее время у меня есть частичное представление с текстовым полем и ValidationMessageFor.Это работает нормально, и сообщение отображается, как и ожидалось, когда ввод неверен.Я делаю небольшой рефакторинг HTML и хочу увеличить validationMessageFor до представления, которое в настоящее время содержит частичное представление.У меня почти все работает правильно, но есть пара загадок.
@Html.ValidationMessageFor(m => m.Mileage, string.Empty, new { id = "spanMileageError", @class = "mileageErrorSpanClass" })
Модель для этого вида является объектом транспортного средства.Модель для ParticalView - это немного другой объект
@Html.TextBoxFor(v => v.Vehicle.Mileage, new { placeHolder = mileagePlaceHolderText, id = Model.TextBoxId, maxlength = "7", @class="mileageTextBoxClass" })
. Эта конфигурация дает имя текстовому полю ("Vehicle.M Пробег"), но атрибут Validation ("data-valmsg-for") равен«Пробег», а не «Автомобиль. Пробег».
Как я могу исправить помощник ValidationMessageFor, чтобы он выдал правильный HTML, чтобы эта проверка работала?
Вот HTML-код текущего представления до рефакторинга HTML
<input type="text" value="" placeholder="Enter Mileage" name="Vehicle.Mileage" maxlength="7" id="textBoxMileage" data-val-range-min="1" data-val-range-max="999999" data- val-range="Mileage must be a valid number between 1 and 999,999." data-val-number="The field Mileage must be a number." data-val="true" class="mileageTextBoxClass input- validation-error" autocomplete="off">
<span id="spanMileageError" data-valmsg-replace="true" data-valmsg-for="Vehicle.Mileage" class="mileageErrorSpanClass field-validation-error"><span htmlfor="textBoxMileage" generated="true" class="">Mileage must be a valid number between 1 and 999,999.</span></span>
А вот HTML-код после рефакторинга
<input type="text" value="" placeholder="Enter Mileage" name="Vehicle.Mileage" maxlength="7" id="textBoxMileage" data-val-range-min="1" data-val-range-max="999999" data-val-range="Mileage must be a valid number between 1 and 999,999." data-val-number="The field Mileage must be a number." data-val="true" class="mileageTextBoxClass placeholder" autocomplete="off">
<span id="spanMileageError" data-valmsg-replace="true" data-valmsg-for="Mileage" class="field-validation-valid mileageErrorSpanClass"></span>
Обратите внимание на диапазонотсутствует внутренний элемент span, который раньше присутствовал.Может кто-нибудь помочь мне исправить проблему здесь?
Спасибо за любые советы и рекомендации или возможные решения.Приветствия,
~ СК в Сан-Диего