У меня есть некоторая модель для моего вида и пользовательский объект в виде свойства, например:
class SomeModel {
public object Data { get; set; }
}
и в представлении:
@model Blablabla.SomeModel
Например, в Model.Data я поместил некоторый объект со свойствами: Name
, DateBirth
и Amount
.
Я хотел бы создать редакторы для этих свойств, например:
@Html.EditorFor(m => m.Data.Name)
@Html.ValidateMessageFor(m => m.Data.Name)
Но я не могу этого сделать, поскольку m.Data
- это object
, и компилятор не пропустит это. В случае с EditorFor - я могу без проблем заменить его своим <input type="..." ... />
.
Но я не могу найти способ включить Validator MVC (из MicrosoftMvcValidation.js) в мой ввод, и я не хочу создавать свои собственные javascripts для всех атрибутов из System.ComponentModel.DataAnnotations
.
Есть ли способ использовать Validator MVC для моего пользовательского объекта без информации о его свойствах (я создаю редакторы, перечисляя свойства через Reflection).
UPD: Я не могу написать только @Html.ValidateMessageFor(m => m.Data.Name)
, потому что раньше не знал об имени свойства. Я могу сделать это только через Отражение, например: @Html.ValidateMessageFor(m => m.Data.GetType().GetProperty(colName).GetValue(m.Data, null))
, где colName
содержит имя свойства (Name, DateBirth или Amount).