如何在代码中检测属性是否使用HiddenInput进行修饰

cpo*_*ign 5 asp.net-mvc-3

我有一个视图,我需要检测属性是否使用隐藏输入进行修饰.

我的财产定义为:

[HiddenInput(DisplayValue = false)]
public string UserName{ get; set; }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的尝试是:

var column.Member = "UserName";

if (ViewData.ModelMetadata.HideSurroundingHtml == true && 
      ViewData.Values.Contains(column.Member))
{                          
  column.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)

我已经读过,我可以使用"HideSurroundingHtml"来确定是否不应该显示该属性.

任何想法如何检测这个?

cpo*_*ign 0

我对这个问题的解决方案如下:

我创建了 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;
        }
Run Code Online (Sandbox Code Playgroud)

这就是我所需要的