Существует ли хороший способ отобразить индикаторы обязательного поля при использовании DataAnnotations в MVC 2?

У меня есть проверка, работающая с DataAnnotations на всех моих моделях, но я хотел бы отобразить индикатор для обязательных полей на загрузке страницы. Так как у меня есть вся своя централизованная проверка, я быть бы индикаторы твердого кода в Представлении. Вызов проверки на загрузке показал бы сводку проверки. Имеет любого, нашел хороший способ позволить модели определить то, что требуется, но проверка ее после рендеринга представления, подобного Html.ValidationMessageFor?

1
задан Jeremy Gruenwald 23 April 2010 в 21:07
поделиться

2 ответа

Это не в моей голове, но это должно помочь вам начать:

public static MvcHtmlString IsRequiredTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression)
{
   if (expression.IsRequired())
      return MvcHtmlString.Create(string.Format("{0} [REQUIRED]", helper.TextBoxFor(expression)));

   return helper.TextBoxFor(expression);
}

public static bool IsRequired<T, V>(this Expression<Func<T, V>> expression)
{
   var memberExpression = expression.Body as MemberExpression;
   if (memberExpression == null)
      throw new InvalidOperationException("Expression must be a member expression");

   return memberExpression.Member.GetAttribute<RequiredAttribute>() != null;
}

public static T GetAttribute<T>(this ICustomAttributeProvider provider) where T : Attribute
{
   var attributes = provider.GetCustomAttributes(typeof(T), true);
   return attributes.Length > 0 ? attributes[0] as T : null;
}
2
ответ дан 3 September 2019 в 01:04
поделиться

Вы можете добавить метод рендеринга, который использует отражение для проверки обязательного атрибута в поле.

0
ответ дан 3 September 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: