2014-02-21 6 views
2

Может кто-нибудь сказать мне, почему «Это поле обязательно» и «Пожалуйста, вставьте имя базы данных» отображаются вместо «Пожалуйста, вставьте имя базы данных»?Ошибка сообщения об ошибке на стороне клиента ASP.NET MVC

Screenshot

Это моя модель:

public class InstallViewModel 
    { 
     [Required(AllowEmptyStrings = false, ErrorMessage = "Please insert database name")] 
     public string DatabaseName { get; set; } 

и это мое мнение:

<div class="input-group"> 
    <span class="input-group-addon">Database</span> 
    @Html.TextBoxFor(w => w.DatabaseName, new { @class = "form-control", placeholder = "Database name" }) 
</div> 
@Html.ValidationMessageFor(w=> w.DatabaseName) 

Спасибо.

EDIT:

Вы можете видеть изображение прилагается? У меня есть проблемы с загрузкой изображений.

Вид частичный вид, и это весь частичный вид:

@Html.ValidationMessageFor(w => w.DatabaseName) 
    <div class="input-group"> 
     <span class="input-group-addon">Database</span> 
     @Html.TextBoxFor(w => w.DatabaseName, new { @class = "form-control", placeholder = "Database name" }) 
    </div> 
    <br /> 
    @Html.CheckBoxFor(w => w.UseWindowsAuthentication, new { @checked = "checked" }) Use Windows Authentication<br /><br /> 
    <div class="wizard-sqlauth" style="display: none"> 
     <div class="input-group"> 
      <span class="input-group-addon">User name</span> 
      @Html.TextBoxFor(w => w.UserName, new { @class = "form-control", placeholder = "User name" }) 
     </div> 
     @Html.ValidationMessageFor(w => w.UserName)<br /> 
     <div class="input-group"> 
      <span class="input-group-addon">Password</span> 
      @Html.PasswordFor(w => w.Password, new { @class = "form-control" }) 
     </div> 
     @Html.ValidationMessageFor(w => w.Password) 
    </div> 
+1

Вы спрашиваете, это потому, что вы видите «Это поле обязательно» вместо «Пожалуйста, вставить имя базы данных ", правильно? Кажется, что все ответы пропустили – Rui

+0

Да, это именно то, что я прошу. –

+1

Можете ли вы показать нам остальную часть вашего вида? –

ответ

1

Вы призываете Jquery проверки "вручную" в любом месте в JavaScript, то есть

$('#myform').valid()?

Это приведет к появлению значения по умолчанию для требуемого правила («Это поле обязательно.») И добавит его как метку после ввода, что является именно тем поведением, которое вы испытываете.

Если вам действительно нужно использовать оба (Unobstrusive проверки + проверки MVC в JQuery), вы можете настроить jquery validation to ignore certain fields, например

$('#myform').validate({ 
    ignore: '#databasefieldId' 
}); 
+0

да, я использую проверку jquery –

+0

Можете ли вы рассказать мне, как отключить значение по умолчанию? –

+0

@BranislavB. Хорошо, я обновлю свой ответ – Rui

2

DatabaseName является «Обязательно» и ваш вклад пуст. (Имеется только текст заполнителя)

+2

Я думаю, что OP означает, почему отображаются две ошибки. – ssilas777

+0

Да, проблема в том, что отображаются два сообщения. Один параметр по умолчанию и один, определенный в ErrorMessage. –

-1

Вы применили атрибут RequiredAttribute к объекту собственности DatabaseName, что означает, что свойство должно содержать значение.

Исключение проверки достоверности возникает, если свойство null, пустая строка ("") или содержит только символы пробела.

+1

Не вопрос о, казалось бы, неправильном сообщении об ошибке? OP установил ErrorMessage на «Пожалуйста, вставьте имя базы данных», почему не указано это вместо? – Rui

-2

Вы только что добавили @Html.ValidationMessageFor(w=> w.DatabaseName) в верхней части div. Это покажет резюме.

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