Отключение проверки в @ Html.TextBoxFor в .Net - PullRequest
7 голосов
/ 21 декабря 2011

Я использую ASP.Net MVC 3. У меня есть объект с именем Student, имеющий свойства Id, Name, Age, RollNo. На странице создания Студента я использовал рамки валидации. Но на странице расширенного поиска я использую все свойства, но не хочу использовать платформу проверки, поскольку пользователи могут не захотеть использовать все поля для поиска.

Я также хотел бы отметить, что я использовал аннотацию [Обязательно] в классе модели.

Пожалуйста, помогите мне преодолеть эту проблему.

С уважением Моле

Ответы [ 5 ]

16 голосов
/ 21 декабря 2011

Я бы согласился с xixonia, используйте отдельную модель просмотра для поиска, но для ответа на ваш вопрос у вас есть несколько вариантов на стороне клиента:

  1. Передайте data-val = "false" в качестве атрибута HTML, например:@Html.TextBoxFor(x => x.Age, new { data_val = "false" });
  2. Используйте @Html.TextBox() вместо
  3. Вручную создайте текстовое поле с HTML, используя то же имя ввода, чтобы оно связывалось с моделью

Если выЕсли вы выполняете проверку в бэкэнде (вы должны быть!), т.е. проверяете ModelState.IsValid, тогда вам придется удалить свойства проверки из ModelState, например: ModelState.Remove("Age");.

3 голосов
/ 11 января 2012

Добавьте этот код в форму:

@Html.EnableClientValidation(false);
2 голосов
/ 21 декабря 2011

Похоже, что значения класса Student ограничены (как и должно быть).

Я бы рассмотрел использование отдельной модели представления для поиска, а не использование Student.

public class Student
{
    [ValidationAttributeOfSomeKind]
    int Age { get; set; }

    [ValidationAttributeOfSomeKind]
    string Name { get; set; }
}

public class StudentSearch
{
    int? Age { get; set; }

    string Name { get; set; }
}
2 голосов
/ 21 декабря 2011

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

1 голос
/ 21 декабря 2011

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

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