2012-04-02 19 views
5

我有一个视图,我需要检测某个属性是否装有隐藏输入。如何在代码中检测属性是否用HiddenInput装饰

我的属性被定义为:

[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”,以确定该属性应不被显示。

任何想法如何检测此?

回答

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; 
     } 

这是所有我需要

2

您可以使用反射来查看特定属性是否具有属性。

看看this question

在各种答案中,用户还用posted a snippet来创建一个扩展方法来检查一个属性是否有特定的属性。希望它可以帮助

相关问题