У меня проблема, в основном у меня есть форма с большим количеством полей в ней, и у всех из них есть необходимый набор атрибутов, поэтому, когда вы просто оставите его пустым и нажмите «ОК» , вы получаете подтверждение на стороне клиента, и оно становится красным. Это слово отлично подходит для всего, кроме EditorTemplate.Шаблон редактора MVC3 не генерирует проверку на стороне клиента
Моя модель имеет следующий вид:
public class MyModel
{
[Required]
public string Username{get;set;}
public Location Loc{get;set;}
}
public class Location
{
[Required]
public string Loc1{get;set;}
[Required]
public string Loc2{get;set;}
}
я следующий в моем главном экране:
@Html.EditorFor(m => m.Location, Model.Location)
А вот мой EditorTemplate:
<tr>
<td class="editor-label">
@Html.LabelFor(m => m.Loc1)
</td>
<td class="editor-field">
@Html.DropDownListFor(m => m.Loc1, Model.Locs==null?Enumerable.Empty<SelectListItem>():Model.Locs, "---select--", new { @class = "location-ddl" })
</td>
<td>
@Html.ValidationMessageFor(m => m.Loc1)
</td>
</tr>
...
После расследования нг это thouroughtly я заметил, что HTML это prodcues следующая:
<select name="Location.Loc1" id="Location_Loc1">
Как вы можете видеть это не хватает некоторых атрибутов для проверки на стороне клиента, как правило, это должно быть так:
<select name="Loc1" id="Loc1" data-val-required="The Loc1field is required." data-val="true">
Мой вопрос , почему шаблон редактора не генерирует правильный вывод html с проверкой на стороне клиента и как его исправить?
Просто для заметки он работает на стороне сервера, поэтому, если эти выборки пусты на стороне сервера, он будет отмечен как не заполненный и отправленный обратно. Но тем не менее, я хотел бы понять поведение редактора и способ его исправления.
Благодаря
действительно ли проверка на стороне клиента работает для свойства 'UserName'? – Shyju
Да, это работает! – Alnedru
Никто не сталкивался с такой проблемой? – Alnedru