Проверка Asp.net MVC3 - PullRequest
       10

Проверка Asp.net MVC3

1 голос
/ 01 октября 2011

У меня есть приложение asp.net MVC3, где проверки выполняются путем добавления атрибута проверки в модель. например,

[Required(ErrorMessage = "Required field")] [Display(Name = "SurveyName")] [DataType(DataType.Text)] public string SurveyName {get;set;}

Затем я создаю текстовое поле в поле зрения

@Html.TextBoxFor(model => model.SurveyQuestions[i].SurveyName)

и добавить сообщение проверки

@Html.ValidationMessageFor(model => model.SurveyQuestions[i].SurveyName)

Сценарий здесь: я создаю 5 текстовых полей с циклом for с тем же свойством модели Surveyname, и я хочу проверить только первое текстовое поле и не проверять остальные текстовые поля.

Возможно ли это?

Edit:

Я использовал приведенный ниже код для остальных текстовых полей, но проверка также происходит в этих полях.

@Html.TextBox("SurveyQuestions[" + i + "].Question", @Model.SurveyQuestions[i].Question)

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

Итак, наконец-то я получил решения, хотя думаю, что это не правильный путь.Но это решило мою проблему.Шаги, которые я сделал, чтобы решить проблему -

  1. Я наблюдал HTML для полей ввода, для которых есть ошибка проверки.Поле ввода будет иметь дополнительные атрибуты, такие как «data-val-required» и «data-val»
  2. Затем я добавил эти поля в текстовое поле, которое необходимо проверить.
  3. Затем я добавилHtml.Validation () для текстового поля с сообщением проверки.

Мой окончательный код выглядит как

             @if (i == 0)
                {
                    @Html.TextBoxFor(model => model.SurveyQuestions[i].Question, new Dictionary<string, object> { { "data-val-required", "required" }, { "data-val", "true" },  { "title", "Question " + (i + 1) }, {"class","QuestionTextBox"} })           
                    <br />
                    @Html.ValidationMessage("SurveyQuestions[0].Question", "At least one question is required.")
                }
                else
                { 
                    @Html.TextBoxFor(model => model.SurveyQuestions[i].Question, new { @class = "QuestionTextBox", @title = "Question " + (i + 1) })    
                }
1 голос
/ 01 октября 2011

Вам нужно создать первый со следующим кодом, как вы это сделали:

@Html.TextBoxFor(model => model.SurveyQuestions[i].SurveyName)

Затем используйте @Html.TextBox для остальной части. Вам просто нужно жестко закодировать атрибуты id и name для свойства вашей модели.

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