Как обнаружить в коде, если свойство оформлено с помощью HiddenInput - PullRequest
5 голосов
/ 02 апреля 2012

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

Мое свойство определено как:

[HiddenInput(DisplayValue = false)]
public string UserName{ get; set; }

До сих пор моя попытка была:

var column.Member = "UserName";

if (ViewData.ModelMetadata.HideSurroundingHtml == true && 
      ViewData.Values.Contains(column.Member))
{                          
  column.Visible = false;
}

Я прочитал, что могу использовать «HideSurroundingHtml», чтобы определить, не следует ли отображать свойство.

Есть идеи, как это обнаружить?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

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

Посмотрите на этот вопрос .

В различных ответах пользователь также опубликовал фрагмент , чтобы создать метод расширения для проверки, имеет ли свойство определенный атрибут или нет.Надеюсь, это поможет

0 голосов
/ 03 апреля 2012

Мое решение этой проблемы заключается в следующем:

Я создал помощник html, который дает мне массив имен со свойствами, которые были украшены атрибутом "HiddenInput".

   public static string[] GetListOfHiddenPropertiesFor<T>(this HtmlHelper htmlHelper)
        {
            Type t = typeof(T);
            var propertyInfos = t.GetProperties()
                                .Where(x => Attribute.IsDefined(x, typeof(HiddenInputAttribute)))
                                .Select(x => x.Name).ToArray();
            return propertyInfos;
        }

это все, что мне нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...