2014-09-05 14 views
6

Trong mẫu mã, đây là cách bạn có được trang chủ từ một tập tin .cshtmlUmbraco 7 + Razor: Cách nhận Tài liệu/Nút bằng ID?

var homePage = CurrentPage.AncestorsOrSelf(1).First(); 

Bây giờ, làm thế nào để tôi nhận được một trang cụ/nút (không liên quan đến trang hiện tại, ví dụ. Trang Tin tức) bằng ID của nó?

Trả lời

16

Bạn có thể sử dụng chính xác cách tiếp cận tương tự nhưng sử dụng .Where(x => x.Id == newsPageId).

Hoặc, bạn có thể sử dụng @Umbraco.TypedContent(newsPageId) hoặc @Umbraco.Content(newsPageId).

+0

Bạn nói đúng nhưng câu hỏi nêu rõ Razor và tệp .cshtml. Nếu bạn cần câu trả lời từ ngữ cảnh khác, hãy đặt câu hỏi :) – Digbyswift

7

Câu trả lời trực tiếp là Umbraco.TypedContent (id) .Nhưng! Nếu bạn muốn nhận nút "Tin tức" từ bất cứ đâu, tôi khuyên bạn nên làm như sau. Sử dụng id là vấn đề đối với một số thiết lập đa ngôn ngữ và cũng có thể nếu id thay đổi nó sẽ ngừng hoạt động.

// 1- Get root node 
var site = Model.Content.AncestorOrSelf("Site"); 

// 2- Get news node 
var news = site.Descendant("News"); 

Phương pháp này linh hoạt hơn và giờ đây bạn có thể sử dụng nút tin tức để lặp lại đó là trẻ em hoặc bất kỳ thứ gì bạn cần. Đối với điều này, bạn cần thiết lập các loại tài liệu cụ thể cho các loại trang web và tin tức.

Hy vọng điều này sẽ hữu ích!

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