我有一个视图,我需要检测属性是否使用隐藏输入进行修饰.
我的财产定义为:
[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"来确定是否不应该显示该属性.
任何想法如何检测这个?
我对这个问题的解决方案如下:
我创建了 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)
这就是我所需要的