2010-08-19 39 views
5

tôi có một loạt các trang chủ lồng nhau, như vậy:ASP.NET MVC trang lồng tổng thể, kế thừa nội dung

Site.Master:

<asp:ContentPlaceHolder ID="SearchFormContent" runat="server"> 
<%Html.RenderPartial("SearchFormControl"); %> 
</asp:ContentPlaceHolder> 

trong lồng trang chủ (trẻ em), khu vực .master

<asp:Content ContentPlaceHolderID="SearchFormContent" ID="SearchFormContentContainer" runat="server"> 
<asp:ContentPlaceHolderID="SearchFormContent" runat="server"/> 
</asp:ContentPlaceHolder> 

Tôi có hai trang nội dung riêng biệt. Người ta muốn thêm nội dung của riêng nó vào SearchFormContent, người còn lại muốn giữ nội dung được xác định trong trang cái cấp cao nhất. Tất nhiên, vì trang chủ con xác định nội dung cho khối SearchFormContent để các trang con có khả năng truy cập nó, nội dung được xác định trong trang cái cấp cao nhất sẽ bị xóa.

Bất kỳ cách nào để thực hiện việc này?

+0

Tôi đang đấu tranh để tìm giải pháp cho cùng một vấn đề này. trong năm kể từ khi bạn hỏi, bạn đã bao giờ tìm thấy một cách thuận tiện để làm điều này? – Funka

+0

Không thực sự. Các giải pháp giữ chỗ lồng nhau hoạt động tốt, mặc dù nó rõ ràng là xấu xí. Tôi đã chân thành di chuyển đến công cụ xem Razor, trong đó có một hệ thống đẹp hơn cho các phần trang tùy chọn, thay thế nội dung chỉ khi bạn muốn, vv –

Trả lời

1

Tôi không thể nghĩ ra cách nào khác ngoài việc sau đây trong trang chủ trẻ

<asp:Content ContentPlaceHolderID="SearchFormContent" ID="SearchFormContentContainer" runat="server"> 
    <asp:ContentPlaceHolder ID="SearchFormContent" runat="server"> 
     <%Html.RenderPartial("SearchFormControl"); %> 
    </asp:ContentPlaceHolder> 
</asp:ContentPlaceHolder> 

Nasty tôi biết, nhưng đó là cách duy nhất tôi có thể nghĩ đến khi sử dụng trang chính.

HTHs,
Charles

+0

Tôi ghét phải lặp lại tất cả các nơi. Chúng ta đang nói về một vài trang. –

+0

Khá nhiều trang chủ bạn muốn nói? Bởi vì bạn chỉ phải làm điều đó trong các trang chính (con). – Charlino

+0

Hai năm và tái phân phối lại toàn bộ và di chuyển sang Sitefinity sau đó, do đó thực sự có ý nghĩa. –

1

Xóa tất cả ContentPlaceHolder giây của bạn và rời khỏi SearchFormControl trực tiếp trên site.master. Nếu bạn không bao giờ muốn ghi đè SearchFormControl sau đó bạn không cần phải xác định ControlPlaceHolder s

+0

Vấn đề là tôi muốn ghi đè lên nội dung SearchFormControl. Nó được hiển thị khác nhau ở một vài khu vực khác nhau của trang web, nhưng một số khu vực cần phải sử dụng nội dung mặc định từ trang chính của trang web cấp cao nhất. –

+1

@David Lively - Dựa trên hai nhận xét của bạn có vẻ như bạn muốn bánh của bạn và ăn nó quá. – jfar

1

bạn có thể đặt nội dung trong ContentPlaceHolder trên masterpage. sẽ được hiển thị theo mặc định nếu bạn không ghi đè lên bằng nội dung trên trang con.

+0

Khi tôi thêm "Biểu mẫu web mới bằng cách sử dụng trang chính", nhà thiết kế sẽ ghi đè tất cả các địa điểm được tìm thấy trong trang chính. Có cách nào để nói không ghi đè một trong số họ? – Adi

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