У меня есть эта модель:
public class TutorialBindingModel
{
[Required]
[RegularExpression(@"[A-Za-z0-9\ \-_]+", ErrorMessage = "You are using invalid characters")]
[StringLength(128, ErrorMessage = "The {0} must be max 128 characters long.")]
public string Title { get; set; }
public List<SampleBindingModel> Samples { get; set; }
}
public class SampleBindingModel
{
[Required]
[StringLength(64, ErrorMessage = "The {0} must be max 64 characters long.")]
[RegularExpression(@"[A-Za-z0-9\ \-_]+", ErrorMessage = "You are using invalid characters")]
public string Name { get; set; }
[Required]
[StringLength(512, ErrorMessage = "The {0} must be max 64 characters long.")]
[RegularExpression(@"[A-Za-z0-9\ \-_]+", ErrorMessage = "You are using invalid characters")]
public string Description { get; set; }
}
Когда я заполняю урок, появляется кнопка, которая создает новый образец формы с подходящими полями.Пример формы - частичный вид с моделью SampleBindingModel
, поэтому я просто помещаю asp-for
в поле и меняю name
на Samples[0].Name
, например.И я получаю правильную разметку, где поля вложенной модели имеют атрибуты проверки в html:
<input class="item" name="Samples[0].Name" placeholder="Text" type="text" data-val="true" data-val-length="The Name must be max 64 characters long." data-val-length-max="64" data-val-regex="You are using invalid characters" data-val-regex-pattern="[A-Za-z0-9\ \-_]+"
data-val-required="The Name field is required." id="Name" value="">
<span data-valmsg-for="Samples[0].Name" class="field-validation-valid" data-valmsg-replace="true"></span>
Но проблема в том, что я не могу проверить этот образец формы.Основная модель проверена правильно, но не вложенная.Я думаю, это потому, что я создаю образец формы динамически, и мне нужно установить валидатор в этой форме, но я не могу думать, как это сделать