Сообщение проверки модели MVC 5 не отображается правильно

Я кодирую интернет-приложение MVC 5, и у меня есть вопрос относительно проверки поля в модели представления.

Вот поле моей модели просмотра:

[Display(Name = "Latitude")]
[Required(ErrorMessage = "Please enter a valid latitude.")]
public double startupLatitude { get; set; }

Вот мой код просмотра:

<div class="form-group">
    @Html.LabelFor(model => model.startupLatitude, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.startupLatitude, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.startupLatitude, "" , new { @class = "text-danger" })
    </div>
</div>

Если я ввожу значение, отличное от двойного, например следующее:

Тестовое задание

Я получаю следующее сообщение проверки, отображаемое в представлении:

Значение «Тест» недействительно для Локатора.

Вместо того:

Пожалуйста, введите действительную широту.

Почему это?

Заранее спасибо.


comment
Добавьте html, созданный методом @Html.EditorFor()   -  person    schedule 03.12.2014
comment
такое поведение является нормальным и допустимым, поскольку вы вводите строку, тогда как свойство модели имеет тип double.   -  person Kartikeya Khosla    schedule 03.12.2014
comment
И использование Required здесь бессмысленно, потому что double всегда должно иметь значение. Это необходимо, только если у вас есть double? (обнуляемый)   -  person    schedule 03.12.2014


Ответы (1)


Поскольку обязательный параметр проверяет ненулевое значение, а данные, которые вы ввели, представляют собой «Строку», где, как ожидается, двойное

Если вы оставите поле пустым, сообщение об ошибке будет отображаться как «Пожалуйста, введите действительную широту».

Изменить:

Установить / заменить сообщение проверки по умолчанию

Or

Попробуйте также использовать Regular Expression.

person Arijit Mukherjee    schedule 03.12.2014
comment
Могу ли я каким-то образом изменить код, чтобы сообщение проверки было одинаковым как для нулевой записи, так и для строки? - person user3736648; 03.12.2014
comment
DataType не содержит значения перечисления для Double - person ; 03.12.2014
comment
@StephenMuecke спасибо за обновление, я обновил свой ответ - person Arijit Mukherjee; 03.12.2014