2010-05-24 32 views
6

Chúng tôi đã tạo trang Master kế thừa lớp Master asp.net. Chúng tôi cũng có các điều khiển ui kế thừa lớp điều khiển asp.net ui chuẩn. Trang chính của chúng tôi có biến thành viên công khai. Chúng ta cần có khả năng truy cập biến thành viên đó từ các điều khiển ui mà chúng ta sử dụng. Tuy nhiên, chúng tôi dường như không thể nhận được nó? Nó có phải là kiến ​​trúc của chúng ta sai không? Hoặc chính ý tưởng - kiểm soát người dùng nhận được acces để biến trang Master?Nhận quyền truy cập vào trang cái tùy chỉnh từ điều khiển người dùng

Trả lời

6

Nói chung, điều này có lẽ không phải là một mẫu thiết kế tuyệt vời. Tuy nhiên, bạn có thể thực hiện một việc như sau:

MyMasterType myMaster = this.Page.Master as MyMasterType; 
if (myMaster != null) 
{ 
    myMaster.PublicProperty = value; 
} 
+0

Yeh đây là những gì chúng tôi đang đi hiện tại nhưng nó chỉ cảm thấy sai. Vì vậy, chúng tôi sẽ thay đổi kiểm soát để có một tài sản công cộng. Trang chứa sẽ chèn giá trị vào thuộc tính đó khi tải. – Bernard

+0

Có lý do gì để tiêm giá trị tốt hơn là lấy nó từ điều khiển người dùng không? Tôi đã tiêm và đang tìm kiếm một cách để lấy nó thay vào đó, nhưng vui lòng xem xét lại nếu có lý do chính đáng để. –

+0

Có một vài lý do: 1) Sử dụng thuộc tính trên trang chính cho phép bạn đặt giá trị trong các ngữ cảnh khác (nhu cầu trong tương lai) và 2) Kiến trúc không còn được kết hợp chặt chẽ nữa. Nếu trang chính nắm lấy dữ liệu, thì trang chính phụ thuộc vào sự kiểm soát của người dùng ở đó. – etc

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