Итак, допустим, у меня есть небольшой объект модели, который содержит обязательную строку и максимальную длину 50:
public class ObjectModel
{
[Required]
[MaxLength(50)]
public string Name { get; set; }
}
Мне нужно создать собственный помощник HTML, где я могу передать строку(в данном случае ObjectModel.Name) и, если требуется, создайте элемент ввода HTML с классом «required».
Сейчас я пытаюсь работать с:
public static HtmlString Input(string label)
{
return new HtmlString("<input type=\"text\" />");
}
Так что в моем представлении Razor, если я делаю что-то вроде @InputHelper.Input(Model.Name)
, я не могу получить доступ к атрибутам.У меня вопрос: как мне структурировать мой вспомогательный класс HTML, чтобы он принимал свойство Model вместе с его атрибутами?
Итак, я добился дальнейшего прогресса, но у меня все еще недостаточно опыта, чтобы перемещаться по выражениям, чтобы получитьчто я хочу.Прямо сейчас у меня есть:
@InputHelper.Input(m => Model.Title.TitleName, "titlename2", "Title Name")
Второй и третий параметры не имеют отношения к этому вопросу.И в вспомогательном методе у меня есть:
public static HtmlString Input(Expression<Func<string, Object>> expression, string id, string label)
Но когда я иду к отладке кода, есть так много объектов и свойств, которые нужно просеять, и я понятия не имею, где мойОбязательные атрибуты и атрибуты MaxLength есть, даже если они там есть.