Имеются следующие классы:
public class MyObjB {
[Required(ErrorMessage = "I need it")]
public string Name { get; set; }
}
public class MyObjA {
[Required(ErrorMessage = "I need it")]
public string Name { get; set; }
public MyObjB MyObjB { get; set; }
}
Вид: использование модели в качестве MyObjA
@{ Html.EnableClientValidation(); }
@{Html.BeginForm();}
@Html.ValidationSummary("Some errors") @Html.AntiForgeryToken()
// MyObjA part
@Html.LabelFor(model => model.Name):
@Html.TextBoxFor(model => model.Name)
@Html.ValidationMessage("Name", "*")
// MyObjB part
@Html.LabelFor(model => model.MyObjB.Name):
@Html.TextBoxFor(model => model.MyObjB.Name)
@Html.ValidationMessage("MyObjB.Name", "*")
@{ Html.EndForm(); }
EnableClientValidation не будет работать ....
Я думаю, что это связано с "." (точка) использовал и проблемы с javacript, но я могу ошибаться и причина будет другая.
Если я использую ту же форму, но только для MyObjB, она будет работать нормально, а проверка клиента выполняется правильно.
Как вы, люди, используете EnableClientValidation со своими подвойствами?
Спасибо.
РЕДАКТИРОВАТЬ 1 - для байтового запроса
Просмотр:
@Html.TextBoxFor(model => model.MyObjB.Name)
HTML Результат:
<input id="MyObjB_Name" name="MyObjB.Name" type="text" value="" />