2010-02-12 26 views
6

Một trang có thể có một thuộc tính MasterType để làm Page.Master trở nên mạnh mẽ, đánh máy:Có thể đặt MasterType theo chương trình không?

<%@ MasterType VirtualPath="~/Site.master" %> 

Nếu tất cả các trang của tôi được thừa hưởng lớp học cụ thể kế thừa System.Web.UI.Page bản thân, tôi có thể cách nọ cách kia được tiếp cận với this.Master sở hữu trong nó vì vậy tôi có thể gọi phương pháp của trang chủ?

Trả lời

6

Trong lớp cơ sở của bạn mà tất cả các trang kế thừa từ, chỉ cần ghi đè lên Master bất động sản, một cái gì đó như thế này:

public new SiteMaster Master 
{ 
    get { return base.Master as SiteMaster ; } 
} 

hoặc biến thể riêng abatishchev của:

public new ISiteMaster Master 
{ 
    get { return base.Master as ISiteMaster; } 
} 
+0

vì lớp SiteMaster không thể truy cập cho lớp trang trừu tượng của tôi, tôi đã tạo ra một giao diện ISiteMaster để chứa mọi thứ tôi cần từ lớp SiteMaster. Hãy để tôi chỉnh sửa câu trả lời của bạn và chấp nhận nó. – abatishchev

+0

@abatishchev - Không sao cả :) vui vì cách tiếp cận đó hoạt động! –

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