2012-04-02 17 views
5

Tôi có chế độ xem nơi tôi cần phát hiện xem thuộc tính có được trang trí với đầu vào bị ẩn hay không.Cách phát hiện trong mã nếu thuộc tính được trang trí với HiddenInput

Tài sản của tôi được định nghĩa là:

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

nỗ lực của tôi cho đến nay đã được:

var column.Member = "UserName"; 

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

Tôi đã đọc mà tôi có thể có thể sử dụng "HideSurroundingHtml" để xác định xem tài sản nên không được hiển thị.

Bất kỳ ý tưởng nào về cách phát hiện điều này?

Trả lời

0

Giải pháp của tôi cho vấn đề này là như sau:

Tôi đã tạo helper html mà mang lại cho tôi hàng loạt các tên với tài sản mà đã được trang trí với các thuộc tính "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; 
     } 

đây là tất cả tôi cần

2

Bạn có thể sử dụng phản chiếu để xem một thuộc tính cụ thể có thuộc tính hay không.

Nhìn vào this question.

Trong các câu trả lời khác nhau, người dùng cũng posted a snippet để tạo phương thức tiện ích để kiểm tra xem thuộc tính có thuộc tính cụ thể hay không. Hy vọng nó giúp

Các vấn đề liên quan